在本机rails s -e production
时一切正常。
用 Capistrano deploy 到服务器上后,shared/assets 里文件总是不全,情况如下:
vendor/assets/
下的 js、css 文件没有被 compile。
app/assets/
下的文件编译后不全:
application.js、application.css 有,
但是其他两个 layout 相关 css 只有一个有,另一个没有,
其余 layout 相关 js 文件都没有,
gem 里的 assets 文件正常。
尝试了多种方法,还是不行。
用配置
task :precompile, roles: :web, except: {no_release: true} do
from = source.next_revision(current_revision) if capture("[ -f #{File.join(current_path, 'REVISION')} ] || echo '1'").empty?
if from.nil? || capture("cd #{latest_release} && #{source.local.log(from)} vendor/assets app/assets lib/assets | wc -l").to_i > 0
run %Q{cd #{latest_release} && #{rake} RAILS_ENV=#{rails_env} #{asset_env} assets:precompile}
else
logger.info "Skipping asset pre-compilation because there were no asset changes."
end
end
运行后提示
** Skipping asset pre-compilation because there were no asset changes.
vendor 下目录结构: vendor ├── assets │ ├── images │ ├── javascripts │ │ ├── html5.js │ │ ├── jquery-1.10.2.js │ │ ├── jquery.easing-1.3.js │ │ ├── jquery.inview.js │ │ ├── magnific-popup.js │ │ └── skrollr.js │ └── stylesheets │ └── magnific-popup.css └── plugins