gpt4 book ai didi

c# - 在 MVC 中创建包的虚拟路径?

转载 作者:太空狗 更新时间:2023-10-29 23:45:14 25 4
gpt4 key购买 nike

我正在为我的 mvc 应用程序中的脚本和样式创建包。

bundles.Add(new ScriptBundle("~/bundles/jquery").Include("~/Scripts/jquery-1.*"));

bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/CSS/abc.css"));

在这种情况下,由于存在一个真实的目录~/Content/CSS,所以存在名称冲突问题,结果它找不到css并且无法应用样式。所以我将虚拟路径更改为 ~/Content/styles/css 并且它有效。所以我在这里有点困惑,虚拟路径在这里是如何工作的?

最佳答案

使用虚拟路径“~/Content/CSS/someName”会更好,因为“someName”css 与真正的 abc.css 具有相同的路径。换句话说,bundle 的虚拟路径不仅是一个路径,还是一个路径和文件名(在我的例子中文件名是“someName”)

然后您在浏览器中将 web.config compilationDebug 设置为 false,您将看到您的包虚拟路径。对于浏览器,它是 css 或 js 文件的 url。

为什么真正的 css 和 bundle 具有相同的路径更好?由于 css 中资源的相对路径(img、字体等)。

例子:你有样式 background-image: url(images/1.jpg);在 Content/CSS/abc.css 中并为您的包使用虚拟路径 ~/Content/styles/css 。结果你得到 404 图像,因为浏览器将通过 url 请求图像:/Content/styles/images/1.jpg 而不是/Content/css/images/1.jpg

如果您在同一包中包含具有不同路径的 css,请使用 CssRewriteUrlTransformation。

是的,您的示例中出现了名称冲突,因为结果中的虚拟 css 与真实文件夹具有相同的 url。

关于c# - 在 MVC 中创建包的虚拟路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27038996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com