我正在使用资产管道(在Rails 3.1.3中),但在生产环境中遇到了一些困难。
情况
在我的/app/assets/stylesheets
目录中,我有以下文件:
application.css --> this is the default rails one
stylesheet.css --> This is my custom stylesheet
我花费了很多时间将我的stylesheet.css
文件包含在生产环境下的/public/assets/
目录中(通过运行rake assets:precompile
命令),最终成功了,我是通过将以下一行代码添加到我的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
。即使在开发环境中,也如此。
更令人惊讶的是,application.css
的表现完美无缺,即使<%= stylesheet_link_tag "application"%>
被解析为<link href="/stylesheets/stylesheet.css" media="screen" rel="stylesheet" type="text/css">
。但我不理解的是,rails 3.1中没有public/stylesheets/目录。
有任何想法吗?
<%= stylesheet_link_tag "/assets/stylesheet.css" %>
。虽然不太令人满意,但它能够正常工作! - rpechayr