我正在尝试使用bootstrap.css来设置由grails渲染插件生成的pdf样式。 pdf生成正常,但没有应用任何CSS样式。
过去几天一直在寻找这个问题的答案,而我却无处可去。
css background is not working when convert template into pdf using rendering plugin
Grails rendering plugin css issue
所有答案都表明解决方案是确保在Config groovy中正确设置grails.serverURL。
目前在以安全模式运行的开发机器上运行,因此我设置了grails.serverURL="https://localhost:8443/"
,并尝试了不同的变体。
.gsp
文件的模板代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Invoice</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
@page {
size: A4 landscape;
}
</style>
<link rel="stylesheet" href="${resource(dir: 'css', file: 'bootstrap.css')}"/>
<r:layoutResources/>
</head>
<body>
<div class="content">
<div class="well">
<p class="pull-right">Invoice: ${companyName.encodeAsHTML()}</p></div></div>
<r:layoutResources/>
</body>
</html>
任何建议都将不胜感激。
答案 0 :(得分:0)
你是否尝试使用内联css作为背景图片?我觉得它应该可行,虽然我没试过,但是应该可以工作。
答案 1 :(得分:0)
由于您依赖于grails.serverURL
设置,因此您应该能够充分利用resources插件的风格。
如果您将bootstrap-app.css
或bootstrap.min.css
声明为应用程序资源模块,则应该能够在gsp中require
,如下所示。您可以尝试这种方法,否则您必须使用我在之前提到的问题中提到的内联css。我不得不坚持使用内联css,因为我没有提到grails.serverURL
作为主持人。我的应用程序在不同环境中使用了主机覆盖。
//ApplicationResources.groovy
bootstrap {
//resource url:'/css/bootstrap-app.css'
resource url:'/css/bootstrap.min.css'
}
//GSP
<head>
<title>Invoice</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<r:require modules="bootstrap"/>
<r:layoutResources/>
</head>
<body>
<div class="content">
<div class="well">
<p class="pull-right">Invoice: ${companyName.encodeAsHTML()}</p></div></div>
<r:layoutResources/>
</body>