首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(Rails) IMGKIT -使用html和css导出图像的问题

(Rails) IMGKIT -使用html和css导出图像的问题
EN

Stack Overflow用户
提问于 2013-01-08 04:51:55
回答 1查看 3.8K关注 0票数 2

我在我的一个项目中使用IMGKIT,必须使用它们的css和html选项来满足请求。我注意到,如果样式表设置如下:

代码语言:javascript
复制
kit = IMGKit.new(html, :quality => 50)
kit.stylesheets << '/path/to/css/file'

而且样式表具有一个具有相对url('image.png')的背景属性,在使用kit.to_file导出它时不会生成图像:

代码语言:javascript
复制
(Rails.root + "public/pngs/" + "image.png")

请求挂起,如果我们用协议、主机和端口将后台url替换成完整的url,那么它就可以很好地导出。

我是否需要对样式表中的所有图像都有绝对的urls?

我尝试在我的asset_host文件中定义development.rb:

代码语言:javascript
复制
config.action_controller.asset_host = Proc.new { |source|
     "#{request.protocol}#{request.host_with_port}"
    }

如果我检查浏览器,它确实会替换css中的url,但是在通过IMGKIT导出时仍然不会生成图像。

EN

回答 1

Stack Overflow用户

发布于 2013-03-20 10:21:58

IMGKIT为任何背景图像或其他资产使用绝对url重新定义css。因此,您可以按照以下链接( https://coderwall.com/p/exj0ig )动态生成它,并按照以下步骤生成

A)将您的所有图像放在rails应用程序的资产/图像文件夹中

B)安装gem 'sass-rails‘如果没有安装https://github.com/rails/sass-rails

C)创建另一个css文件名为css_file_name.css.sccs.erb

D)将所有其他css文件内容放入其中。

E) css文件中的只需将您的图像文件名如下:背景-图像:image.png(‘image.png’);

F)使用命令下运行的assets (pipeline.html#how-to-use-the-asset-pipeline)作为应用模式:(1)开发模式: RAILS_ENV=development bundle exec rake资产:预编译(2)生产模式: RAILS_ENV=production包exec资产:预编译

G)在您的配置/环境/

(1)在development.rb config.action_controller.asset_host =“您的本地主机URL即YOUR_LOCALHOST_ADDRESS”中

(2)在production.rb config.action_controller.asset_host = "http://assets.example.com“/YOUR地址/中

H)和last将样式表与IMGKIT联系起来,如下所示

代码语言:javascript
复制
html_content = "YOUR HTML CONTENT"
kit = IMGKit.new(html_content, height: 900, transparent:true, quality:10) /*YOUR SETTING*/
kit.stylesheets << "#{Rails.root}/public/assets/application.css"
file = kit.to_file(Rails.root + "public/pngs/" + "screenshot.png") /*YOUR IMAGE NAME*/
send_file("#{Rails.root}/public/pngs/screenshot.png", :filename => "screenshot.png", :type => "image/png",:disposition => 'attachment',:streaming=> 'true') /*YOUR ADDRESS WHERE U WANT TO STORE PNG FILE*/

I)重启服务器并享受!

注意:每次更改后,请运行assets命令,以获得由.sccs.erb扩展名文件生成的最新application.css。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14208403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档