在我的应用中,我有以下行
<%= stylesheet_link_tag "global.css", "pop_div.css", "log_in.css.erb" %>
log_in.css.erb是一个简单的css,其中一行有
background: url(<%= asset_path 'LightBg.png' %>);
在看完源后,它变成了
background: url(/assets/LightBg.png);
我认为这是正确的,因为网站有效。
我的困惑是:
1-为什么它为/assets/lightbg.png提供了一个url,而在public / asset目录中,该文件实际上被称为LightBg-47c90e283c305c002f6973edf4054002.png
2-为什么在页面的来源中我看到了
< link href="/assets/log_in.css.erb?body=1" media="screen" rel="stylesheet" type="text/css" />
而不是log_in-447fd7902dbf635bf4231025699ce36a.css,这是public / assets中文件的名称。
编译过程是否应该将log_in.css.erb的调用转为log_in.css?
由于
答案 0 :(得分:2)
散列仅用于生产,在开发中您仍然可以获得纯文件名。如果您需要其他样式表和javascripts而不是application.js和application.css,则需要在config.assets.precompile
中设置config/environments/production.rb
。而且我不确定,如果你仍然可以将几个样式表传递给stylesheet_link_tag
。但通常您希望将所有javascripts和样式表编译成单个文件(application.js和application.css)。