asp.net mvc css url

        asp.net mvc4 的 cshtml文件中支持 虚拟路径的语法,如
<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");
}







发布了32 篇原创文章 · 获赞 4 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章