我在我的一个项目中使用 IMGKIT,并且必须使用它们的 css 和 html 选项来满足要求。我注意到如果样式表设置如下:
kit = IMGKit.new(html, :quality => 50)
kit.stylesheets << '/path/to/css/file'
Run Code Online (Sandbox Code Playgroud)
并且样式表具有带有相对 url('image.png') 的背景属性,使用 kit.to_file 导出图像时不会生成图像:
(Rails.root + "public/pngs/" + "image.png")
Run Code Online (Sandbox Code Playgroud)
请求挂起,如果我们将后台 url 替换为包含协议、主机和端口的完整 url,则可以很好地导出。
我是否需要在样式表中拥有所有图像的绝对 URL?
我尝试在development.rb 文件中定义 asset_host :
config.action_controller.asset_host = Proc.new { |source|
"#{request.protocol}#{request.host_with_port}"
}
Run Code Online (Sandbox Code Playgroud)
如果我在浏览器上检查,它确实会替换 css 中的 url,但通过 IMGKIT 导出时仍然不会生成图像。