Tutorialsteacher

关注我们

文章
  • C#
  • C# 面向对象编程
  • ASP.NET Core
  • ASP.NET MVC
  • LINQ
  • 控制反转 (IoC)
  • Web API
  • JavaScript
  • TypeScript
  • jQuery
  • Angular 11
  • Node.js
  • D3.js
  • Sass
  • Python
  • Go lang
  • HTTPS (SSL)
  • 正则表达式
  • SQL
  • SQL Server
  • PostgreSQL
  • MongoDB
Entity Framework Extensions - 提升 EF Core 9
  批量插入
  批量删除
  批量更新
  批量合并
  • 全部
  • C#
  • MVC
  • Web API
  • Azure
  • IIS
  • JavaScript
  • Angular
  • Node.js
  • Java
  • Python
  • SQL Server
  • SEO
  • 创业
  • 效率

如何使用StyleBundle设置图片路径

在本文中,您将学习如何解析css文件中的绝对路径。

我们在MVC教程中了解到,Bundle类的Include()方法接受带有虚拟路径的文件名。

Resolve image path with stylebundle

如果您打开浏览器调试器,您可以看到css文件已加载,状态为200。

Resolve image path with stylebundle

但是,如果site.css包含带有绝对路径的图片,那么图片将不会加载。例如,我们下面的site.css包含如下所示的页脚样式。

site.css
footer
{
    background:url(../images/border_btm.png) top repeat-x;
    padding:15px;
    color:#618eac;
    margin-top:15px;
}

上述页脚样式引用了背景图片,该图片位于单独的images文件夹中。

Resolve image path with stylebundle

然而,浏览器会显示404错误,因为它找不到图片文件。

Resolve image path with stylebundle

浏览器会考虑css文件中给定的任何路径的虚拟路径。它将尝试从托管服务器加载图片。

Resolve image path with stylebundle

解决方案:

如果您在css中使用图片的绝对路径,则可以指定转换类CssRewriteUrlTransform。

CssRewriteUrlTransform类将url重写为绝对路径。

示例:指定CssRewriteUrlTransform
bundles.Add(new StyleBundle("~/bundles/css").Include(
                    "~/Content/css/site.css",
                    new CssRewriteUrlTransform()
                ));

现在,css文件中的图片路径将被转换为绝对路径。

Resolve image path with stylebundle

如上图所示,图片是使用根文件夹中的绝对路径加载的。

TUTORIALSTEACHER.COM

TutorialsTeacher.com 是您权威的技术教程来源,旨在通过循序渐进的方法,指导您掌握各种网络和其他技术。

我们的内容旨在帮助所有学习者轻松快速地掌握技术。访问此平台即表示您已阅读并同意遵守我们的使用条款和隐私政策,这些条款和政策旨在保障您的体验和隐私权。

[email protected]

关于我们使用条款隐私政策
copywrite-symbol

2024 TutorialsTeacher.com. (v 1.2) 版权所有。