<a href="~/Default.cshtml">Home</a>
但是,css 文件中不支持這種語法,比如這樣的文件結構:
Project
----Content
--------images
------------ok.png
--------Site.css
如果我在Site.css文件中這樣引用圖片ok.png是不行的
#test{
background: url ("~/Content/images/ok.png");
}
由於Site.css可能會以@Styles.Render()的形式被引用,那麼文件到達客戶端時的相對路徑就取決於BundleConfig.cs中如何配置,比如可以這樣:
public class BundleConfig {
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add( new StyleBundle( "~/aa/home" ).Include( "~/Content/Site.css" ) );
}
}
調用時這樣:
@Styles.Render("~/aa/home")
到達客戶端時css文件是這樣的
"http://localhost/aa/home?v=xxxxxxxxxxxxxxxxx"
如果改一下配置:
public class BundleConfig {
public static void RegisterBundles(BundleCollection bundles) {
bundles.Add( new StyleBundle( "~/aa/bb/home" ).Include( "~/Content/Site.css" ) );
}
}
調用時這樣:
@Styles.Render("~/aa/bb/home")
那麼到達客戶端時css文件是這樣的
"http://localhost/aa/bb/home?v=xxxxxxxxxxxxxxxxx"
如此一來,在設置backgroud時,url是沒有辦法判斷相對路徑的,比如:#test{
background: url ("../Content/images/ok.png");
}
所以,圖片放在根目錄文件夾Images中爲好,直接寫成
#test{
background: url ("/Images/ok.png");
}