【问题标题】:MVC 4 bundling broke when published as IIS7 applicationMVC 4 捆绑在发布为 IIS7 应用程序时中断
【发布时间】:2013-04-05 04:43:09
【问题描述】:

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

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

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

当我查看源代码时,我的包没有值,所以脚本的 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,因为路径是正确的。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 bundling-and-minification t4mvc


    【解决方案1】:
     <system.webServer>
       <modules runAllManagedModulesForAllRequests="true"/> 
     </system.webServer>
    

    web.config 文件中的这个修改对我有用。

    【讨论】:

      【解决方案2】:

      使用 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));
      

      看到这个问题: Unable to generate 'VersionQueryString' in Scripts.Render when using bundle

      【讨论】:

        猜你喜欢
        • 2012-09-28
        • 2013-02-15
        • 2013-11-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 2017-03-25
        • 1970-01-01
        相关资源
        最近更新 更多