MVC 捆绑配置css/脚本未加载
本文关键字:脚本 加载 css 配置 MVC | 更新日期: 2024-11-09 01:15:06
我已经阅读了几篇文章,并且一直在互联网上试图弄清楚为什么我的 BundleConfig 即使在本地运行时也无法正常工作。我已经指定了脚本和 css:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/font-awesome.css",
"~/Content/frontend.css",
"~/Content/brand.css",
"~/Content/style.css",
"~/Content/variables.css",
"~/Content/rateit.css",
"~/Content/bootstrap.css",
"~/Content/bootstrap.css"
));
bundles.Add(new StyleBundle("~/Content/fonts").Include(
"~/Fonts/Enzo/stylesheet.css",
"~/Fonts/DinCondensed/stylesheet.css"
));
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/jquery.rateit.js"
));
bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
"~/Scripts/bootstrap.js"
));
bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
"~/Scripts/main.js",
"~/Scripts/mem-geninfo.js",
"~/Scripts/fastclick.js"
));
bundles.IgnoreList.Clear();
我已经在_Layout.cshtml中适当地引用了它们。
<head>
//Code removed for clarity
@Styles.Render("~/Content/css")
@Styles.Render("~/Content/fonts")
</head>
<body>
//Code Removed for clarity
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/scripts")
@RenderSection("scripts", required: false)
</body>
我的网络配置:
<compilation debug="true" targetFramework="4.5" />
但是一切都在页面加载时生成 404 未找到。使用 Chrome 进行调试时,内容和捆绑包文件夹会显示在我的本地主机站点下。我还有其他项目,它在其中工作得很好。我继承了这个项目,我认为它刚刚作为一个空白MVC项目开始。所以配置中可能缺少一些东西。因此根本无法让捆绑包工作。
更新 - 网络配置:
<configuration>
<appSettings>
<add key="webpages:Version" value="3.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" />
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
<pages>
<namespaces>
<add namespace="System.Web.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<modules runAllManagedModulesForAllRequests="true">
<remove name="BundleModule" />
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
关于我做错了什么有什么建议吗?
谢谢
尝试将其添加到您的 web.config 中,在system.webServer
部分中
<modules runAllManagedModulesForAllRequests="true">
<remove name="BundleModule" />
<add name="BundleModule" type="System.Web.Optimization.BundleModule" />
</modules>
编辑
既然你说你要继承这个项目,请确保你注册了捆绑包,通常是在 Global.asax 中 -
protected void Application_Start()
{
...
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
很容易忽略这一点
这篇文章有一段时间,但它可能会帮助寻找这个的人,我发现如果你将你的捆绑名称定义为你的文件路径,它就可以工作,无论你是否看到任何名称在你的开发者机器上工作,当你发布到 IIS 时,捆绑器找不到你的样式和脚本
假设您有此文件
~/Content/plugins/summernote/summernote-s4.css
~/Content/plugins/summernote/summernote.css
将您的捆绑包命名为路径,末尾有一个额外的单词,让我们以这样的方式说"捆绑包"
bundles.Add(new StyleBundle("~/Content/plugins/summernote/bundles").Include(
"~/Content/plugins/summernote/summernote-bs4.css",
"~/Content/plugins/summernote/summernote.css"));
希望对你有帮助