描述一下,我在layout/application.html.erb
里用下面的代码引入 js 和 css
<%= stylesheet_link_tag "application", :media => "all" %>
<%= javascript_include_tag "application" %>
之前都是在 development 环境下,没有问题。今天换做 production 环境,首先rake assets:precompile
了,在public/assets
目录下生成了 js 和 css。
当我启动rails s -e=production
后,发现 css 和 js 都没加载,一看源码,发现变成下面这样了
<link href="/stylesheets/application.css" media="all" rel="stylesheet" type="text/css" />
<script src="/javascripts/application.js" type="text/javascript"></script>
就是说通过stylesheet_link_tag
生成的路径与编译出来的路径不符!可是我在开发环境下一直没问题,看源码也是像下面这样的:
<link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
是什么原因导致开发环境和生产环境下,这个 stylesheet_link_tag 生成的路径不一样呢?
即开发环境是预期的/asset
,而生产环境却变成了不正常的/javascripts
。