如何通过资产管道加载css.erb文件
我希望我的样式表保持简单的css但我想使用嵌入式ruby来包含一些动态路径到图像:
.home {background: #FFF url() no-repeat; }
如果我将样式表从.css更改为.css.erb,则image_path
会被正确解释,但在部署到生产环境时,资产管道不会处理它。 如果我对路径进行硬编码,那么在生产或开发中都会出错,因为它们以不同的方式加载资产。
我该如何解决这个问题?
这是有效的:
可以将.erb添加到.css文件并使用ruby / rails代码。 所以上面我的问题中的片段很好。
您必须在/config/environments/production.rb中添加这样的行
config.assets.precompile = ['*.css.erb']
然后,当您运行RAILS_ENV=production bundle exec rake assets:precompile
将生成指纹CSS文件并正确插入image_path。
所以这解决了我的问题。
对我来说,.js文件是自动预编译的,我没有添加任何配置选项。 但是css或css.erb文件无效。 所以这就是我实际使用的:
config.assets.precompile = ['*.js', '*.css', '*.css.erb']
您只需要预编译您的资产。 这很简单:
RAILS_ENV=production bundle exec rake assets:precompile
一切都将通过Sprockets(资产管道)运行并转储到公共/资产中。 只需确保将其与应用程序的其余部分一起部署到生产中,这应该是全部!
- “autotest / rails 不存在。 中止”
- Ldap没与Devise合作
- Capybara :: ElementNotFound仅适用于特拉维斯的所有规格
- Facebook身份validation+负载均衡器
- 使用xcode 4.5.1在OSX Lion 10.8.2上编译eventmachine gem
- 在Rails中validation英语词典中的单词?
- Devise Token Auth错误:未设置Devise.secret_key
- Phusion Passenger Error:您已激活机架1.2.1,但您的Gemfile需要机架1.2.2
- Ruby Object中是否有一个方法将自身传递给块或proc?