我在BundleConfig.cs中有这段代码,它只包含一个脚本
bundles.Add(new ScriptBundle("~/bundles/ui-scripts").Include(
"~/Scripts/ui-scripts.js"));
在我的语言环境机器(http://localhost:57210/)上,这呈现为
<script src="/Scripts/ui-scripts.js"></script>
本地一切正常。
问题是,我们有在Team City上运行的测试服务器,项目在子文件夹 ( http://testserver.com/myApp/ ) 下运行,但呈现的输出是相同的
<script src="/Scripts/ui-scripts.js"></script>
这导致 ui-scripts.js 无法加载(404),因为它尝试从http://testserver.com/Scripts/ui-scripts.js加载脚本,当然不存在,因为脚本在http: //testserver.com/myApp /Scripts/ui-scripts.js _
我希望框架能够意识到 ~ 指向项目的根目录,在我的例子中是http://testserver.com/myApp/
如果我启用优化
BundleTable.EnableOptimizations = true;
输出呈现优化,但仍然来自错误的位置,再次缺少myApp子文件夹
<script src="/bundles/ui-scripts?v=mRQZjAGbYccSwhcFn4iouztfiK3Xjwik5TtdvD58fHM1"></script>
此外,如果我不使用捆绑包,而是在我希望脚本出现的 _Layout.cshtml 中使用,请编写如下代码
<script src="~/Scripts/ui-scripts.js"></script>
然后在服务器上正确识别路径
<script src="/myApp/Scripts/ui-scripts.js"></script>
此外,如果我在本地主机上创建子目录并将应用程序存储在那里,则路径将正确解析。
StyleBundle 也有同样的问题。知道我可以尝试什么吗?