【发布时间】:2023-03-08 22:10:01
【问题描述】:
我的图像存储在Content/Images 文件夹中。现在我想在CSS 中使用其中一个作为背景。我在 Internet 上找到了一些我应该使用 Url.Content("~/Content/Images") 来引用我的文件的内容。
我是这样写的:
#main_background {
background-image: url('@Url.Content("~Content/Images/background_car.png")');
background-repeat: no-repeat;
position: absolute;
width: 100%;
height: 100%;
}
在我的包的配置文件中:
bundles.Add(new StyleBundle("~/Content/layout_css").Include("~/Content/layout.css"));
当我预览Chrome's view:source 中的HTML 代码时,我发现根本没有解析任何内容。 CSS 看起来和上面一样。
后来我尝试将其更改为:
#main_background {
background-image: url('Images/background_car.png');
background-repeat: no-repeat;
position: absolute;
width: 100%;
height: 100%;
}
在捆绑包中:
bundles.Add(new StyleBundle("~/Content/layout_css").Include("~/Content/layout.css", new CssRewriteUrlTransform()));
它开始工作了,但我在一些文章中看到我应该使用第一种方法。为什么我有问题? Razor 引擎不是必须解析 Url.Content 引用吗?
【问题讨论】:
-
只解析视图,不解析 CSS 文件或其他任何东西。
-
老实说,我只是使用一个好的相对路径并在我的 HTML 中使用一个基本标记,这将使您对 asp.net 的依赖减少很多,并且无论如何都可以在任何地方工作。
-
哦,所以我不能在
CSS中使用它:S我发现了一些错误的文章:/正在谈论Url.Content的人,在CSS文件中使用了它跨度> -
好吧,至少默认情况下不会。 stackoverflow.com/questions/4492748/dynamic-css-for-asp-net-mvc 但是在你的 CSS 中你应该只使用 @BenjaminGruenbaum 说的相对路径。
标签: asp.net razor asp.net-mvc-5