微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Rotativa退出在服务器上的.NET Core项目中使用CSS文件

如何解决Rotativa退出在服务器上的.NET Core项目中使用CSS文件

我以前曾让Rotativa使用Viewaspdf()函数创建部分视图的PDF。该函数仍然呈现PDF,并且数据仍然正确,但是由于某些原因,视图中包含的CSS和图像不再将其转换为PDF。除了使用win-acme为HTTPS安装证书以外,我对服务器或IIS均未进行任何更改。知道为什么会这样吗?视图本身可以很好地工作,并使用图像和CSS填充。

.NET Core项目被编译为针对Windows x64,并且是自包含的(不依赖于具有正确框架的服务器),尽管服务器上安装了.NET Core Hosting Bundle。

我到处搜寻解决方案,并尝试: 重新安装Visual C ++(wkhtmltopdf依赖于其中的一些.dll)

下载了最新版本的wkhtmltopdf并将.exe放在wwwroot下的Rotativa文件夹中

修改后的C:\ Windows \ System32 \ drivers \ etc \ hosts取消注释

#localhost name resolution is handled within DNS itself.
127.0.0.1       localhost
::1             localhost

链接更改为CSS。目前,我已经尝试过:

<link rel="stylesheet" type="text/css" href="/css/cards/cardBase.css" media="screen" /><link rel="stylesheet" type="text/css" href="@Url.Content("~/css/cards/cardBase.css")" media="screen" />

这些都不能解决问题。在“中断” Url.Content(“〜pathtocss”)的剃刀语法之前,效果很好。

我们甚至竭尽全力启动另一个VM,并从头开始,所有操作都获得了相同的结果。

这时我遇到了很多想法,该应用程序的所有其他方面都正常运行。

当我尝试在localhost上的Visual Studio中调试此程序时,一切也很好。几乎就像是我无法解决的权限问题。

解决方法

结果证明该问题与IIS有关。我已将站点的绑定设置为机器本身的IP,将其更改为“所有未分配的地址”即可解决此问题。我认为这与本地主机无法使用127.0.0.1 IP指向自身有关。希望这可以在某个时候帮助别人。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。