在我的临时服务器上,我遇到了一些麻烦。
当我跑步时
RAILS_ENV=production rake assets:precompile
然后
ls public/assets/
manifest-e694d7a3911e13a1b7c31ee3a73ccc9d.json>
然后
$ cat public / assets / manifest-e694d7a3911e13a1b7c31ee3a73ccc9d.json
{}
但是,如果我只运行rake资产:precompile(没有RAILS_ENV =生产标志),那么我会将一堆CSS和JS以及我的图像放入public / assets文件夹中。不幸的是,有两个问题:
1).js和.css文件上的指纹(md5哈希)与javascript_include_tag和stylesheet_link_tag自动吐出的内容不匹配
2)在生成的CSS文件中,我看到了对我的静态资产的引用,但它们不包含md5哈希指纹,即使我明确要求它; e.g。
background-image: url(image-path('home/logo.png'));
它只是生成
background-image: url("/assets/home/logo.png");
即使生成的文件是,
标志-a412c0ad6a034e4da4324436fff2f871.png
相应文件的相关(我认为)位:
这是我的application.rb
config.assets.enabled = true
这是我的development.rb
config.assets.compress = false
config.assets.debug = true
这是我的production.rb
config.serve_static_assets = true
config.assets.compress = true
config.assets.js_compressor = :uglifier
config.assets.compile = true
config.assets.digest = true
config.assets.precompile = true
这是我的nginx conf
server {
listen 80;
server_name staging.mysite.com;
root /var/www/myuser/current/public;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location / {
proxy_pass http://appname; # match the name of upstream directive which is defined above
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location ~ ^/(assets)/ {
root /var/www/myuser/current/public;
gzip_static on; # to serve pre-gzipped version
expires max;
add_header Cache-Control public;
}
}
感谢您的帮助。我现在已经在这里敲了一会儿。如果我应该分享更多信息,请告诉我。