Оптимизированные пакеты, возвращающие 404 при запросе с сайта.
-
22-12-2019 - |
Вопрос
У меня возникла эта странная проблема, когда я установил:
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);
И я уже пытался добавить следующие строки в system.webServer файла web.config:
<modules runAllManagedModulesForAllRequests="true">
<remove name="BundleModule" />
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
Я не уверен, может ли это быть связано с этим, но я использую Umbraco v7 на этом веб-сайте, и это происходит только в том случае, если я устанавливаю для EnableOptimizations значение «true».
Решение
Если я правильно помню, это связано с конфигурацией umbraco.
Найдите ключ umbracoReservedPaths
(в appSettings
) в вашей web.config
и добавьте туда путь к пакетам, вот так:
<add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/bundles/"/>