繁体   English   中英

作为IIS7应用程序发布时,MVC 4捆绑破产了

[英]MVC 4 bundling broke when published as IIS7 application

我正在尝试将一个MVC 4项目部署到IIS 7上。

我需要将项目作为网站内的应用程序,以便用户可以继续使用现有网站,但可以通过将/ mySite添加到现有网址来访问我的网站。

我可以在网站下创建一个应用程序时访问我的网站,但所有捆绑包都已损坏。

当我查看源代码时,我的bundle没有值,所以脚本的src如下所示:

"/mySite/Scripts/validation?v="

如果应用程序作为单独的网站发布而不是应用程序,则它可以正常运行,捆绑包具有价值。

"/Scripts/validation?v=-_ZaBIp4vfIoajyi-JkBIsoCXRGuEGptU4ZUpHA6c8U1"

以下是我在bundle config中定义bundle的方法。

        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文件中的这个修改,对我有用。

使用VirtualPathUtility.ToAppRelative在IIS中创建应用程序相对路径,如下所示:

  var validationBundle = new ScriptBundle("~/Scripts/validation")
        .Include(VirtualPathUtility.ToAppRelative(Links.Scripts.jquery_validate_js))
        .Include(VirtualPathUtility.ToAppRelative(Links.Scripts.jquery_validate_unobtrusive_js));

看到这个问题: 使用bundle时无法在Scripts.Render中生成'VersionQueryString'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM