前提・実現したいこと
ASP.NET、VB.NETを使ったWebアプリケーション。
CSSを使って、Labelなどを装飾したい。
発生している問題・エラーメッセージ
IISを使用したローカル環境に限り、CSSが適用されない。(Firefox、Google Chromeで確認)
Microsoft Azureに発行し公開したもの、Visual Studioから起動した場合は、CSSが適用されている。
該当のソースコード
「style.css」は同一のディレクトリに存在している。
ASP.NET
1<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="(ファイル名).aspx.vb" Inherits="(ソリューション名).(ファイル名)" %> 2 3<!DOCTYPE html> 4 5<html xmlns="http://www.w3.org/1999/xhtml"> 6<head runat="server"> 7<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <link rel="stylesheet" href="style.css" type="text/css" /> 9 <title></title> 10</head> 11<body> 12 <!--ここにLabelなどが書かれている--> 13</body> 14</html> 15
CSS
1body 2{ 3 background-color:black; 4 color:white; 5} 6 7.box 8{ 9 width:400px; 10 text-align:right; 11} 12 13.rightalign 14{ 15 text-align:right; 16} 17 18.player1 19{ 20 color:deepskyblue; 21} 22 23.player2 24{ 25 color:red; 26} 27 28.player3 29{ 30 color:lime; 31} 32 33.player4 34{ 35 color:yellow; 36} 37
試したこと
linkのhrefの「style.css」の前に、「./」を付けたりした(逆にエラーが発生し、動作しなくなった)。
フォルダの共有設定で、「Everyone」に読み込み権限を付与した。
補足情報(FW/ツールのバージョンなど)
OSはWindows10 Pro。
ブラウザのキャッシュは?
ブラウザのキャッシュの削除を試してみましたが、効果はありませんでした。
また、CSSファイルのサイズは300バイト程度になっていますが、「ディスク上のサイズ」が0バイトになっていました。これは何か違うのでしょうか?
ブラウザのキャッシュを消したあと Fiddler で見てください。
あと、href="style.css" というのはダメです。考えましょう
もう一つ「IISのローカル環境」とのことですが、アクセス権の問題かも。users に読み取り権限はありますか?
「Everyone」に読み取り権限を与えていますが、「users」とはまた違ったものなのでしょうか?
知りません。everyone とか考えてこともないので。前に言った Fiddler で見てみましたか? 要求・応答は正常ですか? 聞かれたことには答えてくれないと・・・
href="style.css" というのはダメといいましたけど、そこ理解してますか?
Fiddlerで確認しましたがアクセスログと同様style.cssはResultが200でした。
ASP.NETを始めたばかり故、外部CSSファイルのパス指定をあまり理解していません。
Resultは200(リクエストが受理された)ですが、中身がないCSSファイルに化けている(?)ようです。
> Fiddlerで確認しましたがアクセスログと同様style.cssはResultが200でした。 ←中身は見ましたか? 期待通りでしたか? F12 開発者ツールでどのようにスタイルが適用されているか見てみましたか?
> 外部CSSファイルのパス指定をあまり理解していません。 ←基本のキなので理解してないのではダメです。読んでください https://msdn.microsoft.com/ja-jp/library/ms178116%28v=VS.100%29.aspx
> 中身がないCSSファイルに化けている(?)ようです。 ←化けるなんてことはないはず。そもそもが中身がないのでは? そこを、質問する前に、ちゃんと調べてくれないと・・・
IPアドレスから見ると(192.168.x.x/(フォルダ)/style.css)中身がないCSSファイルになりますが、エクスプローラでアクセス(wwwroot/(フォルダ名)/style.css)して別のエディタ(メモ帳、Crescent Eveなど)で見ると正常に中身が書き込まれています。
もう一回だけ言います。href="style.css" というのはダメといいましたけど、そこ理解してますか?
申し訳ないですがあまり理解していません。リンク先を読んで考えうるパスのパターンを試しましたが、うまくいきません。
例えば、「../style.css」「/(フォルダ)/style.css」「~/(フォルダ)/style.css」です。
適当にやってもダメです.パスの指定はWeb系でなくてもほぼ避けて通れない部分です.cf.「絶対パス、相対パス、ルートパスの違いってなに?メリット・デメリットは?」(https://fastcoding.jp/blog/all/frontend/path/)
適当なことを行き当たりばったりでやってないで、よく読んでちゃんと理解してやってください。 https://msdn.microsoft.com/ja-jp/library/ms178116%28v=VS.100%29.aspx 何度も言わせないでください。
今頃話が戻って何ですか「IISを使用したローカル環境に限り」と「Microsoft Azureに発行し公開した」と違いますよね? どういうこと?
> CSSファイルのサイズは300バイト程度になっていますが、「ディスク上のサイズ」が0バイトになっていました。 ←これは何を見たのですか?
以前に外部CSSファイルを使ったASP.NETで制作したWebアプリをMicrosoft Azureに向けて発行したものは質問で挙げたaspxのソースのパス指定でもCSSが反映されたのですが、IISを使ったローカル環境だとこのパス指定ではCSSが反映されない模様です。
ディスク上のサイズはファイルのプロパティ(右クリックメニューで出せるもの)で確認しました。
回答3件
あなたの回答
tips
プレビュー