首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果项目在子目录中运行,C# MVC StyleBundle和ScriptBundle不会呈现正确的路径。

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

Stack Overflow用户
提问于 2017-01-02 09:46:11
回答 1查看 632关注 0票数 2

我在BundleConfig.cs中有这段代码,它只包含一个脚本

代码语言:javascript
复制
bundles.Add(new ScriptBundle("~/bundles/ui-scripts").Include(
                        "~/Scripts/ui-scripts.js"));

在我的地区机器(http://localhost:57210/)上,它呈现为

代码语言:javascript
复制
<script src="/Scripts/ui-scripts.js"></script>

在当地一切都很好。

问题是,我们有运行在Team City上的测试服务器,其中项目在子文件夹(http://testserver.com/myApp/)下运行,但是呈现的输出是相同的

代码语言:javascript
复制
<script src="/Scripts/ui-scripts.js"></script>

这会导致ui-scripts.js无法加载(404),因为它试图从http://testserver.com/Scripts/ui-scripts.js加载脚本,当然这并不存在,因为脚本在http://testserver.com/Scripts/ui-scripts.js中。

我希望框架能够意识到~指向项目的根,在我的例子中它是http://testserver.com/myApp/

如果我启用优化

代码语言:javascript
复制
BundleTable.EnableOptimizations = true;

输出呈现优化,但仍然来自错误的位置,再次缺少myApp子文件夹。

代码语言:javascript
复制
<script src="/bundles/ui-scripts?v=mRQZjAGbYccSwhcFn4iouztfiK3Xjwik5TtdvD58fHM1"></script>

Additionally,如果我不使用包,而是在我希望脚本出现的_Layout.cshtml中使用,请按如下方式编写代码

代码语言:javascript
复制
<script src="~/Scripts/ui-scripts.js"></script>

然后在服务器上正确识别路径,以便

代码语言:javascript
复制
<script src="/myApp/Scripts/ui-scripts.js"></script>

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

同样的问题也适用于StyleBundle。知道我能尝试什么吗?

EN

回答 1

Stack Overflow用户

发布于 2017-01-02 11:38:39

我发现了问题。测试服务器上的IIS配置存在问题。项目实际上有自己的子域分配给它,不应该从子目录运行。篡改IIS设置解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41424429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档