Rotativa 在发布到服务器时忽略 Boostrap CSS

Rotativa ignoring Boostrap CSS when published to the server

Rotativa 在本地托管时使用我的 Bootstrap 正确显示和呈现 PDF,但一旦发布到服务器就不会。呈现的 PDF 显示一些 CSS,但没有 Bootstrap。我看过其他关于此的帖子,但这些建议没有用。 Rotativa 文件夹按照建议位于 Web 应用程序的根目录中。

如果您使用的是捆绑包,.min 文件默认会被忽略,所以我最好的猜测是使用这个:

bundles.IgnoreList.Clear();

我不知道你是否已经创建了捆绑包:

<!--Create route for the bundles like this:-->
bundles.Add(new StyleBundle("~/Content/css").Include(
            "~/Content/bootstrap.min.css",
            "~/Content/main.css"));

我遇到了同样的问题,并通过将其更改为类似内容解决了它:

<link href="@Server.MapPath("~/Content/bootstrap.min.css")" rel="stylesheet" />

当您的站点使用 windows 身份验证时,可能会出现这种情况。

您需要按如下方式授予对 web.config 中 CSS 文件的访问权限:

<location path="content">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

这 3 件事情中的一件为我们解决了这个问题。 我们使用 https://www.w3schools.com/w3css/w3css_validation.asp 来验证我们的 css,并发现了一些小问题,我们已更正这些问题。

我们使用了 Ozz 的修复程序。

和以前一样,它在我们桌面上的 IIS Express 中正常工作。

然后我们将应用程序发布到网络服务器并注意到它现在可以正常工作了。

所以要么

  1. Ozz 的修复
  2. Rotativa 对我们畸形的 css 感到害怕(但为什么只在网络服务器上?)
  3. 只需将应用程序从我们的本地桌面重新复制到 Web 服务器即可“畅通无阻”。

我们仍在测试,但第一次通过时它看起来有效。