我设置时遇到这个奇怪的问题:
BundleTable.EnableOptimizations = true;
当我尝试打开我的网站时,它无法加载,当我打开Chrome控制台时,我看到以下消息:
GET / localhost / bundles / scripts / angularjs / commonmodules?v = 13-uWpwzN3U6kiHVssXRdpywHxrn09twvYKwoDVN3SU1 404(未找到)
但是,如果我尝试打开chrome控制台上显示的链接,它加载得很好,换句话说,当我尝试直接打开它时找到链接,但是当页面尝试时,服务器(IIS 7.5)返回404通过标签链接它.
有没有人经历过这种奇怪的行为?
我的包的虚拟路径不映射任何现有文件或目录,我使用以下代码包含它们:
var myBundle= new ScriptBundle("~/bundles/scripts/angularjs/bootstrapping"); bootstrapping.Include("~/app/app.js") .Include("~/app/config.js") .Include("~/app/config.exceptionHandler.js") .Include("~/app/config.route.js"); bundles.Add(bootstrapping);
我已经尝试在web.config的system.webServer上添加以下行:
<modules runAllManagedModulesForAllRequests="true"> <remove name="BundleModule" /> <add name="BundleModule" type="System.Web.Optimization.BundleModule" /> </modules>
我不确定这可能是相关的,但我在这个网站上使用Umbraco v7,这只有在我将EnableOptimizations设置为“true”时才会发生.
解决方法
如果我没记错的话,umbraco配置相关.
在web.config中找到关键的umbracoReservedPaths(在appSettings中)并在那里添加包的路径,如下所示:
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/bundles/"/>