部署到heroku资产管道Sprockets :: fileNotFound

时间:2012-10-25 21:26:57

标签: ruby-on-rails-3 configuration heroku asset-pipeline

我正在尝试将我的应用部署到 Heroku 。 Heroku没有加载我的 js css 文件

我跑了RAILS_ENV=production bundle exec rake assets:precompile 它仍然无法正常工作。

然后我跑了    heroku rake assets:precompile

我在Heroku日志中收到此错误:

Error compiling asset application.css:
 Sprockets::FileNotFound: couldn't find file 'jquery.ui.datepicker'
 (in /app/app/assets/stylesheets/application.css.scss:13)

Served asset /application-989f5e5266d9b066eb316183d7db5c77.css - 500 Internal Server Error


 Error compiling asset application.js:
 Sprockets::FileNotFound: couldn't find file 'jquery.ui.datepicker'
 (in /app/app/assets/javascripts/application.js:16)
Served asset /application-d81c946c6f47242e5e97de9bca4938be.js - 500 Internal Server Error

config production.rb:

config.cache_classes = true
  config.consider_all_requests_local       = false
  config.action_controller.perform_caching = true
  config.serve_static_assets = true
  config.assets.compress = true
  config.assets.compile = true
  config.assets.initialize_on_precompile = false

  config.assets.digest = true

资产 application.css.scss

 *= require_self
 *= require bootstrap_and_overrides
 *= require jquery.ui.datepicker
 *= require bootstrap-timepicker
 *= require jquery.fileupload-ui
 *= require_tree .
*/

的application.js

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require jquery.ui.datepicker
//= require bootstrap-timepicker
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require_tree .

知道怎么解决这个问题吗?提前感谢您的所有帮助。

5 个答案:

答案 0 :(得分:20)

我认为这个问题与未预编译的资产有关。

在您的终端中,如果您运行:

   $ >>> rake assets:precompile

然后进行添加和提交:

$ >>> git add .
$ >>> git commit -m 'Added precompiled assets for Heroku'

假设您的遥控器名为“heroku”:

$ >>> git push heroku master

它应该正确部署,而不必弄乱你的应用程序。

答案 1 :(得分:0)

路径显示为/app/app/assets/javascripts/application.js/app两次混乱。这可能会导致问题。

答案 2 :(得分:0)

尝试此操作并按照源

中的步骤操作 在application.js添加jquery-ui

//= require jquery
//= require jquery-ui

然后尝试

来源:https://github.com/joliss/jquery-ui-rails

答案 3 :(得分:0)

如果rake预编译资产对任何人都不起作用,我正在与一位程序员一起工作并问他(他在我们的项目中修复它,而不是我,我很难过。)

他不是以英语为母语的人,但这里有:

“我已经分析过,当你找不到文件jquery-ui-datepicker的预编译时,由于链接调用js和css for jquery ui version 4.0的变化,导致你失败​​的原因是推送到Heroku错误.12使用最新的rails 5.0.0,我现在已经通过Gemfile中的固定版本修复并替换了js和css中的调用。“

瞧,它看起来有效。

答案 4 :(得分:0)

  1. 首先清理并预编译资产

      

    $ rake assets:clean
      $ rake assets:precompile

  2. 更新存储库

      

    $ git add -A
      $ git commit -m" message"

  3. 推送到heroku

      

    $ git push heroku