使用虚拟目录在WebForms中捆绑脚本

时间:2013-08-01 15:53:46

标签: vb.net webforms virtual-directory bundling-and-minification asp.net-optimization

我们有一个单独的“框架”项目,用于此项目和其他项目使用的共享控件,javascript等。 Framework项目包含在我们的解决方案中,我们使用IIS为它创建了一个虚拟目录,因此我们仍然可以使用~/Framework创建相对链接的文件。

因此,我们希望开始为脚本和样式使用新的Web Optimization包。一切都运行正常,但我们在尝试使用虚拟目录中的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

这是我在MasterPage中的内容:

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

1 个答案:

答案 0 :(得分:0)

在项目的 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