<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");
}