0

В функции минимизации и связывания ASP.NET у меня есть скрипт, который очищает определенные вещи и должен запускаться после загрузки нескольких независимых файлов.Как добавить файл несколько раз в пакет сценариев ASP.NET MVC5?

Поэтому я создать связку,

new ScriptBundle(virtualPath, cdnPath).Include(
    "~/Scripts/a.js", 
    "~/Scripts/cleanup.js", 
    "~/Scripts/b.js", 
    "~/Scripts/cleanup.js", 
    "~/Scripts/c.js", 
    "~/Scripts/cleanup.js", 
    "~/Scripts/d.js", 
    "~/Scripts/cleanup.js", 
); 

Позже я сделать это, используя формат <script defer="defer" src="{0}"></script>, ожидая, что очистка будет происходить как в отладки и выпуска режиме, как и следовало ожидать, сразу после кода каждого сценария. Однако ASP.NET Пакетирование полосы повторяющихся вызовов одного и того же пути к файлу, следовательно, выход

<script defer="defer" src="/Scripts/a.js"></script> 
<script defer="defer" src="/Scripts/cleanup.js"></script> 
<script defer="defer" src="/Scripts/b.js"></script> 
<script defer="defer" src="/Scripts/c.js"></script> 
<script defer="defer" src="/Scripts/d.js"></script> 

в режиме отладки, в то время как я ожидал,

<script defer="defer" src="/Scripts/a.js"></script> 
<script defer="defer" src="/Scripts/cleanup.js"></script> 
<script defer="defer" src="/Scripts/b.js"></script> 
<script defer="defer" src="/Scripts/cleanup.js"></script> 
<script defer="defer" src="/Scripts/c.js"></script> 
<script defer="defer" src="/Scripts/cleanup.js"></script> 
<script defer="defer" src="/Scripts/d.js"></script> 
<script defer="defer" src="/Scripts/cleanup.js"></script> 

Это также говорит мне, что файл будет оставлен в комплекте, что не то, что я желаю.

+0

Если очистки необходимо запустить несколько раз, то не может а, Ь, с, d и т.д. просто вызвать очищающий код, когда они закончили? – Shoe

+0

Файлы a, b, c и d.js автоматически генерируются при создании проекта сторонним инструментом, который невозможно взломать. Вот почему проблема. – artfuldev

+0

Одна вещь, которую вы могли бы сделать, это создать отдельные пакеты для 'a.js, cleanup.js',' b.js, cleanup.js' и т. Д. Немного раздражает, но будет работать. – Shoe

ответ

0

Использование в bundleConfig.cs следующие строки:

BundleTable.EnableOptimizations = true;