找不到MVC捆绑包虚拟路径
本文关键字:虚拟 路径 包虚拟 MVC 找不到 | 更新日期: 2023-09-27 18:30:10
我看到了很多关于这方面的问题和答案;但这些答案似乎都没有给我指明方向。
当我将虚拟路径指定为物理文件的地址时,以下代码工作正常:
bundles.Add(new Bundle("~/Modules/SIRVA.Connect.Intake.SAP/Content/style.css")
.Include("~/Modules/Intake/Content/Style.css"));
但是,如果我指定了一个文件系统中不存在的虚拟路径(比如…):
bundles.Add(new Bundle("~/content/intake.css")
.Include("~/Modules/Intake/Content/Style.css"));
MVC将呈现样式,但当您单击href时,它会显示"找不到页面",并且样式不起作用(因为它们不存在)。
<link href="/content/intake.css" rel="stylesheet"/>
MVC自己的例子似乎指向一个不存在的物理位置作为虚拟路径,但当他们这样做时,它可以很好地工作!
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/bootstrap.css",
"~/Content/site.css"
));
有人能告诉我为什么我必须将Bundle()
构造函数的虚拟路径设置为物理文件位置吗?
路径不应该是物理文件位置。你能试着指定一个目录而不是特定的文件类型吗?像这样(使用StyleBundle,因为我知道你想创建一个css捆绑包):
bundles.Add(new StyleBundle("~/bundles/css")
.Include("~/Modules/Intake/Content/Style.css"));
这将允许应用程序在生产环境中出于版本控制的目的(如果您的捆绑包能够最小化和压缩)在生产时生成查询字符串。
<link rel="stylesheet" href="/bundles/css?v=f-rOZpG8nqcdBI9IS1kiTRlij7Eim7N9U1_RJYwd4_w1"></link>
我相信,使用捆绑包中文件的物理路径的工作方式是有限的,就像它不允许您在那里添加更多内容一样,因为它已经在使用中了。我还没有真正用过它,所以我不知道确切的结果是什么
编辑(以防万一):
您还需要在视图中正确渲染它。下面是一个例子(剃刀视图):
@Styles.Render("~/bundles/css")