1

我的解决方案由几个共享相同静态内容的 Web 应用程序组成。

我最近一直在使用 Microsoft ASP.NET 优化框架来捆绑这些文件。

问题是我只有一个 Global.asax 文件,我在其中注册了所有捆绑包,例如:

var jqueryBundle = new ScriptBundle("~/Scripts/jquery");
        jqueryBundle.Include(new string[] { 
    "~/static/js/jQuery/jquery-1.11.2.js",
    "~/static/js/jQuery/jquery-ui.js"});

然后在我的母版页上,我有:

<asp:PlaceHolder ID="phBundle" runat="server">
    <%: System.Web.Optimization.Scripts.Render("~/Scripts/jquery") %>
</asp:PlaceHolder>

要在任何其他应用程序上引用此文件,我必须使用完整路径:

<%: System.Web.Optimization.Scripts.Render("/websites/MainApp/Scripts/jquery") %>

这样做的问题是,在调试模式下运行时,第二个应用程序静态文件显示为包,而不是单个/分隔文件。

此外,在发布模式下运行时,文件在没有哈希的情况下被提取(这意味着如果它们被缓存,它们将不会被更新)

主应用 在第一个应用程序上获取静态文件

二次应用 在第二个应用程序上获取静态文件

我想通过在每个项目之间复制所有静态文件并在 Global.asax 中单独注册它们来解决这个问题(目前只有主应用程序有 Global.asax)

4

0 回答 0