4

報告が 1 つありますが、通常は localhost で css を使用して動作します。しかし、サーバーに置くと、バンドル付きの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>

ローカルホストでは機能していますが、サーバーでは css とロゴが機能していません。

4

3 に答える 3

5

私はこの問題と戦うために何週間も費やし、スタックオーバーフローが提供するすべての提案を試しました:

  • 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 に答える