0
<link href="Site.css" rel="stylesheet" type="text/css" />

これは、ローカル マシンの Theme.Master (Views/Themes/Blue/Theme.Master) からは正常に機能しますが、最終的なホームのホストされたプロバイダーからは機能しません。CSS が Content フォルダーの任意のサブフォルダーにある場合、Theme.Master は CSS を見つけることができますが、CSS が Theme.Master と同じフォルダーにある場合は見つけることができません。

私は理にかなっていますか?

非常に不満

4

4 に答える 4

1

相対ファイル参照を使用する必要があります。これを試して:

<link href="<%= Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css" />

...そして、それは問題を解決するはずです。

編集 これはうまくいかないとコメントしたので、解決策を見つけた場所を調べました。このブログ投稿でランス・フィッシャーから入手しました。それでも解決しない場合 (Java スクリプト ファイルについて話しているため)、以前に回答された同様の質問をここで参照することもできます。それが役立つことを願っています!

于 2009-04-16T20:12:23.753 に答える
1

Nick の回答に対するコメントは、.css ファイルを ~/Views/ フォルダー ツリーの下にある Theme.Master ファイルと同じフォルダーに配置しようとしていることを意味します。これはできません。~/Views/ ツリーは、Web ブラウザーからのすべての HTTP 要求をブロックするように構成されています。

.css ファイルをアクセス可能な場所に配置する必要があります。~/Content/ フォルダー ツリーは、.css ファイルを置く伝統的な場所です。.css ファイルをそこに移動してから、ニックが提案したようにこれを使用すると、機能します。

<link href="<%= Url.Content("~/Content/Site.css") %>" rel="stylesheet" type="text/css" />

記録として、web.config ファイルにこれらのディレクティブがあるため、Views フォルダーでは機能しません (Views フォルダーに直接 web.config ファイルがあることに注意してください)。これは参考までに。これらは一般的に正当な理由があるため、これらをいじることはお勧めしません。

<!-- for IIS6 -->
<httpHandlers>
  <add path="*" verb="*"
      type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>

<!-- for IIS7 -->
<handlers>
  <remove name="BlockViewHandler"/>
  <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
</handlers>
于 2009-04-16T21:45:46.243 に答える
0

ルート化されたパスを使用してみましたか? そのような:

<link href="/Site.css" rel="stylesheet" type="text/css" />

また

<link href="/style/Site.css" rel="stylesheet" type="text/css" />

スタイル シートがサイトのルートにない場合。

于 2009-04-16T20:12:57.840 に答える
0

ホストされたプロバイダーで、アプリはサイトのルートにありますか? またはサブフォルダーに?この点で、開発環境はサーバーでのセットアップと一致していますか? アプリのルート ~/ に対して相対的に動作するようにする必要がある場合があります。

基本的に、これはここで説明されている (スクリプトに関する) 同じ問題に似ています。

于 2009-04-16T20:13:32.720 に答える