在Rails应用部署到Heroku时,遇到“预编译资产失败 - 链轮::FileNotFound:找不到文件'angular',类型为'application/javascript'”错误,通常是由于静态文件路径配置不正确或文件确实不存在导致的。
app/assets/javascripts
目录下没有找到名为angular
的文件。config/initializers/assets.rb
或config/application.rb
中配置了错误的路径。确保在app/assets/javascripts
目录下存在名为angular
的文件。
# 检查文件是否存在
ls app/assets/javascripts | grep angular
如果不存在,可以尝试重新下载或创建该文件。
检查config/initializers/assets.rb
和config/application.rb
中的配置。
# config/initializers/assets.rb
Rails.application.config.assets.precompile += %w( angular.js )
# config/application.rb
module YourApp
class Application < Rails::Application
config.assets.paths << Rails.root.join('app', 'assets', 'javascripts')
end
end
清理现有的资产并重新预编译。
# 清理资产
rake assets:clobber
# 重新预编译
rake assets:precompile RAILS_ENV=production
确保在部署前已经正确配置和预编译了资产。
# 部署到Heroku
git push heroku main
通过以上步骤,应该能够解决“预编译资产失败 - 链轮::FileNotFound:找不到文件'angular',类型为'application/javascript'”错误。如果问题仍然存在,建议检查Heroku的日志以获取更多详细信息。
# 查看Heroku日志
heroku logs --tail
领取专属 10元无门槛券
手把手带您无忧上云