【发布时间】:2018-01-22 13:11:56
【问题描述】:
我正在关注this link 在我的 ASP.NET MVC 应用程序中捆绑和缩小 JS 和 CSS 文件。
大部分建议都已开箱即用。
这就是我的代码的样子:
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/bundleOne").Include(
"~/js/jquery-3.1.1.min.js",
"~/js/bootstrap.min.js",
"~/js/bootstrap-suggest.js",
"~/js/Internal.js",
"~/js/abc.js"));
bundles.Add(new ScriptBundle("~/bundles/bundleTwo").Include(
"~/js/common.js"));
}
这是 global.asax 文件的外观:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
BundleTable.EnableOptimizations = true;
}
}
我正在构建调试模式设置为 false 的应用程序。
<system.web>
<httpRuntime targetFramework="4.5" />
<customErrors mode="Off" />
<compilation debug="false" />
</system.web>
并使用以下语法来引用包
@Scripts.Render("~/bundles/bundleOne")
@Scripts.Render("~/bundles/bundleTwo")
虽然一切正常,但我没有看到包含压缩文件的名为 bundles 的文件夹。我发布解决方案时的行为是相同的。
【问题讨论】:
-
您看不到包含缩小资源的文件夹,因为此过程发生在运行时。它基本上从请求中确定它发出请求的浏览器类型,然后捆绑,如果应用程序在非调试模式下运行,则缩小。
-
@SiddharthPandey:有什么方法可以物理生成文件吗?当我在 Visual Studio 上本地运行应用程序时,我的应用程序工作正常,但是当我使用 Visual Studio 发布代码后部署它时,我看到
myApp:1 Uncaught TypeError: $(...).tooltip is not a function错误 -
请确保您在 bundle 中定义的脚本顺序是正确的,并且您的所有第三方库都实际包含在内。 tooltip 不是一个函数,基本上意味着模块/库可能未加载,并且 js 引擎不知道您可能希望在 jquery 对象上执行的任何名为 tooltip 的函数。
-
@SiddharthPandey :我很确定我以正确的顺序添加了文件和所需文件,并且我没有在本地收到此错误。只有在我发布时才会出现。
标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-3 asp.net-mvc-5