【问题标题】:Rotativa ignoring Boostrap CSS when published to the serverRotativa 在发布到服务器时忽略 Bootstrap CSS
【发布时间】:2015-06-05 13:44:17
【问题描述】:

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

【问题讨论】:

  • 确保服务器上的文件路径与本地路径一致。或者至少调整你的代码。

标签: css twitter-bootstrap rotativa


【解决方案1】:

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

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

【讨论】:

  • 我最终只需要在该页面上明确包含样式表,而不是布局页面。它奏效了。
  • Server.MapPath 对我来说是关键,对于图像也是如此。
【解决方案2】:

如果您使用的是捆绑包,默认情况下会忽略 .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"));

【讨论】:

  • 我有你建议的捆绑包和 IgnoreList.Clear();我刚刚尝试在 Active Directory 中创建一个用户并将凭据作为自定义开关传递,但到目前为止这也不起作用。根据我刚刚所做的研究,添加 Active Directory 身份验证会破坏 Rotativa。任何有关如何规避的建议都会有所帮助,并感谢上述想法。
【解决方案3】:

当您的站点使用 Windows 身份验证时,可能会发生这种情况。

您需要在 web.config 中授予对 CSS 文件的访问权限,如下所示:

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

【讨论】:

    【解决方案4】:

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

    我们使用了 Ozz 的修复方法。

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

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

    原来是这样

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

    我们仍在测试,但第一次通过它看起来可行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-08
      • 1970-01-01
      • 2012-11-02
      • 2018-04-28
      相关资源
      最近更新 更多