我正在尝试将 MVC 4 项目部署到 IIS 7 上。
我需要该项目成为网站内的应用程序,以便用户可以继续使用现有网站,但通过将/mySite 添加到现有 URL 来访问我的网站。
在网站下创建为应用程序时,我可以访问我的网站,但所有 bundle 都已损坏。
当我查看源代码时,我的包没有值,所以脚本的 src 看起来像:
"/mySite/Scripts/validation?v="
如果应用程序作为单独的网站而不是应用程序发布,则它可以正常工作并且 bundle 具有值(value)。
"/Scripts/validation?v=-_ZaBIp4vfIoajyi-JkBIsoCXRGuEGptU4ZUpHA6c8U1"
下面是我如何在包配置中定义我的包。
var validationBundle = new ScriptBundle("~/Scripts/validation")
.Include("~" + Links.Scripts.jquery_validate_js)
.Include("~" + Links.Scripts.jquery_validate_unobtrusive_js);
我检查了父网站的应用程序池,它设置为 .NET 4
我不知所措,无法在网上找到任何其他东西,因此欢迎提出任何建议。
谢谢
回答
通常,我最终在另一个堆栈溢出问题上找到了答案,但我又丢失了,所以没有链接。
问题是使用 T4MVC,这会为作为应用程序或在虚拟目录中发布的 MVC 项目生成不正确的路径。
如果您作为网站发布,您可以继续使用 T4MVC,因为路径是正确的。
最佳答案
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
web.config 文件中的这个修改对我有用。
关于c# - 当作为 IIS7 应用程序发布时,MVC 4 捆绑中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15975016/