4

我有一份报告,它通常在带有 css 的 localhost 中工作。但是当我放在服务器上时并没有用 bundle 加载 css。

代码 :

public ActionResult ParseSendPDF()
{
    var result = Session["Search"] as List<Order>;
    ViewAsPdf pdf = new ViewAsPdf("SendPDF", result);
    pdf.PageOrientation = Rotativa.Options.Orientation.Landscape;
    pdf.PageSize = Rotativa.Options.Size.A4;
    pdf.CustomSwitches = "--background";
    foreach (var results in result)
    {
        foreach (var detail in results.OrderDetails)
        {
             var description = detail.Description;
             if (description.Length > 84)
             {
                 SetBreakLine(ref description);
                 detail.Description = description;
             }
        }
    }
    return pdf;
}

看法 :

@model List<Models.Order>
@{
    Layout = null;
 }

 <!DOCTYPE html>
 <html>
 <head>
    <meta name="viewport" content="width=device-width" />
    <title>Reports</title>
    @Styles.Render("~/Content/css")
    @Styles.Render("~/Content/trip")
    @Styles.Render("~/Content/datetimepicker")
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/ajax")
    @Scripts.Render("~/bundles/modernizr")
    @Scripts.Render("~/bundles/datetimepicker") 
    <style type="text/css">
        table { page-break-inside:auto }
        tr    { page-break-inside:avoid; page-break-after:auto }
        thead { display:table-header-group }
        tfoot { display:table-footer-group }
    </style>
</head>
<body>
    <img style="margin-top: -7px;" class="img-responsive"    src="~/Content/Images//logo.png" />
    <h1 class="text-center">Reports</h1>
    @Html.Partial("_Index", Model)
</body>
</html>

在 localhost 工作但在服务器中,我的 css 和徽标不起作用。

4

3 回答 3

5

我花了数周时间解决这个问题,并且尝试了 Stack Overflow 提供的每一个建议:

  • 为在 IIS 服务器上创建的用户提供了带有用户名和密码的自定义开关
  • 为在 Active Directory 上创建的用户提供了带有用户名和密码的自定义开关(因为我的应用程序通过 Active Directory 进行了身份验证)
  • 调整所有用户对 IIS 上 wkhtmltopdf.exe 的权限
  • 将 .min 和普通 css 文件添加到捆绑列表中
  • 调整 CSS 文件的权限

最后,我终于删除了捆绑包引用,并在我的布局页面标题中特别说明了我的 CSS 文件,它工作正常。

<link rel="stylesheet" type="text/css" href="~/Content/bootstrap.min.css"/>
于 2015-06-12T15:08:36.077 回答
2

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

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

<location path="content">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>
于 2016-08-22T16:10:35.837 回答
0

使用下面的代码..这可以帮助你

@Styles.Render("@Server.MapPath(~/Content/css)")
@Styles.Render("@Server.MapPath("~/Content/trip)")
@Styles.Render("@Server.MapPath("~/Content/datetimepicker)")
@Scripts.Render("@Server.MapPath("~/bundles/jquery)")
@Scripts.Render("@Server.MapPath("~/bundles/ajax)")
@Scripts.Render("@Server.MapPath("~/bundles/modernizr)")
@Scripts.Render("@Server.MapPath("~/bundles/datetimepicker)") 
于 2015-11-30T14:14:40.897 回答