资产在视图中称为<%= image_tag('union_15') %>
在开发模式下,生成的HTML是正确的,并按预期呈现:<img src="/assets/union_15-2bd9d905e662bcd012424ffda847b1125dc8637a0b8cee101a174f9db26e838d.png">
个config/initializers/assets.rb
的条目Rails.application.config.assets.precompile += %w( initialise.css pdf.css )
个environments/production.rb
有config.public_file_server.enabled = true
设置为每导轨指南.RAILS_ENV=production rails assets:precompile
在本地和服务器上运行。
此外,.gitignore
通过注解# /public/assets
进行了调整,以确保预编译的资产被重新分配到服务器。
部署过程在生产环境中使用capistrano执行:
01 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile
✔ 01 [email protected] 3.541s
00:34 deploy:assets:backup_manifest
01 mkdir -p /home/rd/app_name/releases/20231219091853/assets_manifest_backup
字符串
在生产服务器上检查了以下文件current/assets_manifest_backup/.sprockets-manifest-e4c8157abe8d8b5916786c943a01c388.json
个
以确定正在进行指纹识别。找到以下JSON条目:[...]"union_15-2bd9d905e662bcd012424ffda847b1125dc8637a0b8cee101a174f9db26e838d.png":{"logical_path":"union_15.png","mtime":"2023-12-19T09:19:21+00:00","size":2233,"digest":"88b013210661a0b48a30e59ec033c2add1a069ccb72d1d2ce49f9f2c9531963b","integrity":"sha256-iLATIQZhoLSKMOWewDPCrdGgacy3LR0s5J+fLJUxljs="},[...]
个
然而,在生产中,HTML没有正确引用,呈现:<img src="/images/union_15" />
个
考虑到rails的约定,这是出乎意料的。设置中有什么错误/遗漏?
1条答案
按热度按时间k2fxgqgv1#
结果发现有两个配置偏离了基准。下面的设置让服务回到了正轨.环境变量不存在,编译需要设置为true。
字符串