Связывание сценариев в WebForms с виртуальными каталогами

У нас есть отдельный проект "Framework" для общих элементов управления, javascript и т. д., который используется этим и другими проектами. Проект Framework включен в наше решение, и мы создали для него виртуальный каталог с помощью IIS, чтобы мы могли делать относительные ссылки на файлы с помощью ~/Framework.

Итак, мы хотим начать использовать новые пакеты веб-оптимизации для скриптов и стилей. Все работает нормально, но у нас возникают проблемы при попытке использовать объединение с файлами JS в виртуальном каталоге. Когда установлено debug="false", файлы корректно объединяются и минимизируются. Когда установлено debug="true", оно не включает никаких файлов!

Очевидно, что у него есть доступ к файлам, поскольку он может объединять и минимизировать их вместе. Есть ли способ заставить это работать?


Вот что у меня есть в App_Start/BundleConfig.vb

    Public Shared Sub RegisterBundles(bundles As BundleCollection)
        Dim mainBundle = New ScriptBundle("~/bundles/main")
        mainBundle.Orderer = New AsIsBundleOrderer()
        mainBundle.Include("~/Framework/Javascript/Main/Library.jQuery.js")
        mainBundle.Include("~/Framework/Javascript/Main/Library.jQuery.ui.js")
        'snip....
        mainBundle.Include("~/Framework/Javascript/Main/CP.Base.js")

        bundles.Add(mainBundle)
    End Sub

Вот что у меня есть на моей мастер-странице:

    <%: System.Web.Optimization.Scripts.Render("~/bundles/main") %>

comment
какую версию оптимизации используете? 1.1?   -  person Hao Kung    schedule 01.08.2013
comment
Дох! Я был на 1.0, и обновление до 1.1 исправило это. Спасибо.   -  person CBarr    schedule 01.08.2013


Ответы (1)


создайте класс в папке App_Code в своем проекте и добавьте этот код в класс

Public Shared Sub RegisterBundles(bundles As BundleCollection)
    Dim mainBundle = New ScriptBundle("~/bundles/main")
    mainBundle.Orderer = New DefaultBundleOrderer()
    mainBundle.Include("~/HTML5Components/adc.js")
    bundles.Add(mainBundle)
End Sub

после этого откройте Global.asax

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    BundleConfig.RegisterBundles(BundleTable.Bundles)         
End Sub
person Raju Gopalam    schedule 01.07.2015