【问题标题】:weboptimization css bundle not found (404)未找到 web 优化 css 包 (404)
【发布时间】:2017-10-16 06:15:48
【问题描述】:

我使用 .net 框架 4.6.1 在 C# 中创建了一个 Asp.Net webforms 网站。 该网站运行良好,但是当我尝试使用 web 优化组件优化 CSS 负载时 我从 css url 请求中得到 404

请注意,我也有完美运行的 js 包。

在 .aspx 页面中,我在脑海中:

<webopt:BundleReference runat="server" Path="~/stylesheets" />

bundle.config 位于站点结构的根目录中,其内容是:

<?xml version="1.0" encoding="utf-8" ?>
<bundles version="1.2">
  <styleBundle path="~/stylesheets">
    <include path="~/Bootstrap/css/bootstrap.css" />
    <include path="~/css/style.css" />
    <include path="~/css/custom.css" />
  </styleBundle>
</bundles>

检查网络请求,我看到对样式表的请求

base-site 是 js 包

Global.asax 文件:

void Application_Start(object sender, EventArgs e)
{
    RouteConfig.RegisterRoutes(RouteTable.Routes);

    BundleTable.EnableOptimizations = true;
    BundleConfig.RegisterBundles(BundleTable.Bundles);
}

web.config:

<system.web>
    <authentication mode="None"/>
    <compilation debug="true" targetFramework="4.6.1">
    ...
<httpRuntime targetFramework="4.6.1"/>
        <pages enableEventValidation="true">
          <namespaces>
            <add namespace="System.Web.Optimization"/>
            <add namespace="Microsoft.AspNet.Identity"/>
          </namespaces>
          <controls>
            <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/>
          </controls>
        </pages>
        ...
  </system.web>
  <system.webServer>
    <modules>
      <remove name="FormsAuthentication"/>
      <remove name="BundleModule"/>
      <add name="BundleModule" type="System.Web.Optimization.BundleModule"/>
    </modules>
    ...
  </system.webServer>

我有一个相同的网站,具有相同的 web.config、相同的路由配置和 EnableFriendlyUrls(True),其中正确提供了 CSS 包。

  • 它在 VS2017 本地和生产服务器上都不起作用。
  • 没有名为“样式表”的文件夹或其他页面
  • CSS 文件格式正确
  • 我也尝试过使用单个 CSS 文件,但总是得到 404。
  • 所有其他页面和 JS 包的路由工作正常

为什么 CSS 包不起作用? 我可以做些什么来了解问题出在哪里?

【问题讨论】:

  • 可能与相对/绝对路径问题有关?
  • @ahmet 我已经逐字检查了近一百万次

标签: c# css asp.net optimization webforms


【解决方案1】:

经过几次测试,我发现每次对 css bundle.config 文件进行更改时,我都必须关闭并重新启动 Visual Studio。 重启 IIS Express 是不够的。

在生产服务器上,我必须停止并重新启动网站,回收应用程序池。

【讨论】:

  • 我可以说重新启动应用程序池和网站并不总是有效...(我的浏览器上的缓存被禁用,所以我没有使用缓存包)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-23
  • 2018-11-06
  • 1970-01-01
  • 2016-03-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多