情况
在我的/ app / assets / stylesheets目录中,我有以下文件:
application.css --> this is the default rails one stylesheet.css --> This is my custom stylesheet
我花了很多时间将我的stylesheet.css包含在生产中的/ public / assets /目录中(通过运行rake资产:预编译),最后通过在application.rb文件中添加以下行来实现:
config.assets.precompile += ['stylesheet.css']
我知道在生产中有正确的预编译stylesheet.css文件.
我的问题
我遇到的问题是使用stylesheet_link_tag和stylesheet.css文件.事实证明:
<%= stylesheet_link_tag“stylesheet”%>被解析为< link href =“/ stylesheets / stylesheet.css”media =“screen”rel =“stylesheet”type =“text / css”>在生产中,我希望将路径解析为/assets/stylesheet.css,就像在开发中一样.
更令人惊讶的是,即使<%= stylesheet_link_tag“application”%> ;,application.css仍然表现完美.解析为< link href =“/ stylesheets / stylesheet.css”media =“screen”rel =“stylesheet”type =“text / css”>.我不明白的是rails 3.1中不存在public / stylesheets /目录.
任何想法 ?
解决方法
我的问题的答案是Rails 3.1 assets has no fingerprint in production.
基本上,我的项目使用mongoid而不是ActiveRecord.根据Mongoid documentation关于配置,application.rb文件可以修改为不包括ActiveRecord,这意味着删除:
require railties/all
并替换为:
require "action_controller/railtie" require "action_mailer/railtie" require "active_resource/railtie" require "rails/test_unit/railtie" # require "sprockets/railtie" # Uncomment this line for Rails 3.1+
我习惯于使用rails 3.0.x进行这种操作,我没注意与Rails 3.1相关的注释
我的问题是我不需要链轮!
感谢大家的帮助 !