【问题标题】:Script Bundling in WebForms with Virtual Directories使用虚拟目录在 WebForms 中捆绑脚本
【发布时间】:2013-08-02 15:49:49
【问题描述】:

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

因此,我们希望开始使用新的 Web 优化包来处理脚本和样式。一切工作正常,但我们在尝试将虚拟目录中的 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.1?
  • 噢!我在 1.0 上,对 1.1 的更新解决了这个问题。谢谢。

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


【解决方案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

【讨论】:

    猜你喜欢
    • 2017-03-21
    • 2013-01-13
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    相关资源
    最近更新 更多