「background: url('../images/sort_asc.png') no-repeat center right;」のようなステートメントで標準の CSS を使用しようとしています。
実行すると、コントローラーが見つからないことを示す Visual Studio メッセージが表示されます。コントローラーを必要とせずに、フレームワークに画像 URL を直接かつ文字通り解決するように指示するにはどうすればよいですか?
「background: url('../images/sort_asc.png') no-repeat center right;」のようなステートメントで標準の CSS を使用しようとしています。
実行すると、コントローラーが見つからないことを示す Visual Studio メッセージが表示されます。コントローラーを必要とせずに、フレームワークに画像 URL を直接かつ文字通り解決するように指示するにはどうすればよいですか?
コンテンツフォルダーにある場合、コントローラーは必要ありません。CSS はどこにありますか? 画像は、CSS が配置されているドキュメントではなく、CSS の場所に相対的です。
..
(親) を使用して URL に戻りすぎている可能性があると思われます。yourhost.com/images/sort_asc.png
これにより、フレームワークが「画像」コントローラーを探すようにトリガーするような URL が生成されます。
たとえば、試してみてください:
background: url('images/sort_asc.png') no-repeat center right;
(CSS がフォルダーに直接あり、そのフォルダーにもビットマップをContents
含むフォルダーがあると仮定します)images
Contents
相対パスは、MVC ではうまく機能しません。その理由は、/Home と /Home/Index (たとえば) が同じページを指している可能性があるため、両方で機能する相対パスを構築する方法がないためです。
解決策は、「/Content/Images/img.png」や「http://mydomain.com/Content/Images/img.png」などの絶対パスを使用することです (つまり、少なくとも .css ファイルなどの静的リソースの場合)。動的構文の使用を許可しない)。