在Web窗体应用程序中捆绑CSS和脚本
本文关键字:CSS 脚本 Web 窗体 应用程序 | 更新日期: 2023-09-27 18:13:57
我在这里遇到了一个关于将CSS和脚本绑定到Web窗体应用程序的难题。
首先,我想指出的是,我正在遵循本教程:http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx
我已经在App_Start中有BundleConfig类,它看起来像这样:
using System.Web;
using System.Web.Optimization;
namespace SitePessoal.Web
{
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery/core/jquery-{version}.js"));
bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include(
"~/Scripts/jquery/core/jquery-ui-{version}.js"));
bundles.Add(new StyleBundle("~/CSS/css").Include(
"~/CSS/Estilos.css",
"~/CSS/Print.css",
"~/CSS/Styles.css"));
}
}
}
此外,我已经下载了Nugget的优化包,所以后来我转到我的Global.asax文件,并试图在Application_Start方法中注册它,如下所示:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
BundleConfig.RegisterBundles(BundleTable.Bundles);
BundleTable.EnableOptimizations = true;
}
不幸的是,这是不起作用的地方。不幸的是,它一直用红色在类下划线,并给我以下信息:
Error 3 The name 'BundleTable' does not exist in the current context
Error 4 The name 'BundleTable' does not exist in the current context
Error 2 The name 'BundleConfig' does not exist in the current context
关于为什么会发生这种情况,有什么想法吗?提前感谢!
谨致问候,
Mad
我按照相同的教程解决了@MadGatsu遇到的问题。
@价格是正确的,%MadGatsu正确地添加了对Global.asax的引用,包括
<%@ Import Namespace="System.Web.Optimization" %>
<script RunAt="server">
void Application_Start(object sender, EventArgs e)
{
BundleConfig.RegisterBundles(BundleTable.Bundles);
但它还有更多。
基于缺少Global.asax.cs,我推断我们有网站。在这种情况下,我们需要将Bundleconfig.cs文件放在特殊的aspnet文件夹App_Code中。不要添加App_Start文件夹来包含该文件,因为它不起作用。简单地将我的BundleConfig.cs从App_Start移动到App_Code纠正了当前上下文中不存在"BundleConfig"错误。
您可能已经修复了这个问题,但只是为了以防万一它对任何人都有用。。您可能需要在Global.asax.cs
中添加对System.Web.Optimization
和BundleConfig
类命名空间SitePessoal.Web
的引用
示例:
using System.Web.Optimization;
using SitePessoal.Web;
namespace SitePessoal.Web.Application
{
public class Global : HttpApplication
{
private void Application_Start(object sender, EventArgs e)
{
BundleConfig.RegisterBundles(BundleTable.Bundles);
BundleTable.EnableOptimizations = true;
}
}
}
如果您还没有在web.config
中的页面中添加System.Web.Optimization
命名空间,那么您可能还需要添加它,因为仅仅通过NuGet
添加对Microsoft.AspNet.Web.Optimization
包的引用是不够的。
<pages>
<namespaces>
<add namespace="System.Web.Optimization"/>
</namespaces>
</pages>