首页 > 解决方案 > 如何在资产后修复 404 未找到来自 gem 的资产:预编译

问题描述

当我运行rake assets:precompile RAILS_ENV=production时,不包括从 gems 使用的资产,我的网站显示了很多 404 未找到这些资产。

pnotify.core-4a29894be02cb147dd67c1f609148e95.css:1 Failed to load resource: the server responded with a status of 404 (Not Found)
pnotify.buttons-19d9aeb87c03cfef956313439afad682.css:1 Failed to load resource: the server responded with a status of 404 (Not Found)
pnotify.history-d339b3266d96cddfa55c4f0478f9d0ea.css:1 Failed to load resource: the server responded with a status of 404 (Not Found)

Rails.application.config.assets.paths生产显示:

=> ["/vagrant/local/app/assets/fonts",
 "/vagrant/local/app/assets/images",
 "/vagrant/local/app/assets/javascripts",
 "/vagrant/local/app/assets/stylesheets",
 "/vagrant/local/vendor/assets/javascripts",
 "/vagrant/local/vendor/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/material_icons-2.2.1/app/assets/fonts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/material_icons-2.2.1/app/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/chosen-rails-1.5.2/vendor/assets/images",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/chosen-rails-1.5.2/vendor/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/chosen-rails-1.5.2/vendor/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/cocoon-1.2.6/app/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-minicolors-rails-2.1.4.0/vendor/assets/images",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-minicolors-rails-2.1.4.0/vendor/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-minicolors-rails-2.1.4.0/vendor/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/pnotify-rails-2.0.1.1/vendor/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/pnotify-rails-2.0.1.1/vendor/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/tinymce-rails-4.1.0/app/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/tinymce-rails-4.1.0/app/assets/source",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/tinymce-rails-4.1.0/vendor/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-ui-rails-4.1.2/app/assets/images",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-ui-rails-4.1.2/app/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-ui-rails-4.1.2/app/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/activeadmin-0.6.0/app/assets/images",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/activeadmin-0.6.0/app/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/activeadmin-0.6.0/app/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/formtastic-2.2.1/app/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/bourbon-4.0.2/app/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/jquery-rails-3.1.1/vendor/assets/javascripts",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/font-awesome-sass-5.3.1/assets/stylesheets",
 "/home/vagrant/.rvm/gems/ruby-1.9.3-p385/gems/font-awesome-sass-5.3.1/assets/fonts"]

欢迎任何帮助!

标签: ruby-on-railsrubygemsasset-pipeline

解决方案


问题是config.assets.debug选项,它true在生产服务器上,并且 CDN 中没有文件。

就这么简单。


推荐阅读