gpt4 book ai didi

如果项目在子目录中运行,C# MVC StyleBundle 和 ScriptBundle 不会呈现正确的路径

转载 作者:太空宇宙 更新时间:2023-11-03 15:10:23 25 4
gpt4 key购买 nike

我在 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>

另外 ,如果我不使用 bundle,而是在我希望脚本出现的 _Layout.cshtml 中使用,请像这样编写代码

<script src="~/Scripts/ui-scripts.js"></script>

然后路径在服务器上被正确识别到

<script src="/myApp/Scripts/ui-scripts.js"></script>

另外,如果我在我的本地主机上创建子目录并将应用程序存储在那里,路径将被正确解析。

StyleBundle 也有同样的问题。知道我可以尝试什么吗?

最佳答案

我发现了问题。测试服务器上的 IIS 配置有问题。该项目实际上为其分配了自己的子域,并且不应该从子目录运行。摆弄 IIS 设置解决了这个问题。

关于如果项目在子目录中运行,C# MVC StyleBundle 和 ScriptBundle 不会呈现正确的路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41424429/

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