javascript ” Heroku “我们很抱歉,但是出了点问题。由于 javascript_include_tag

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/10067359/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-26 08:35:21  来源:igfitidea点击:

Heroku "We're sorry, but something went wrong." due to javascript_include_tag

javascriptruby-on-railsjquery-mobileheroku

提问by Karan

Uploading my ruby on rails app to heroku causes the following error:

将我的 ruby​​ on rails 应用程序上传到 heroku 会导致以下错误:

We're sorry, but something went wrong.

我们很抱歉,但有些不对劲。

This does not occur on my local machine.

这不会发生在我的本地机器上。

After some debugging, I think I may have spotted the error, but do not know how to fix it.

经过一些调试,我想我可能已经发现了错误,但不知道如何修复它。

In my file application.html.erb, removing the following line solves the problem, but then my app loses its jquery mobile theme. Any ideas what I could do to fix the problem?

在我的文件 application.html.erb 中,删除以下行解决了问题,但随后我的应用程序丢失了它的 jquery 移动主题。有什么想法可以解决问题吗?

Line causing the problem:

导致问题的行:

<%= javascript_include_tag "application" %>

application.html.erb file:

application.html.erb 文件:

<!DOCTYPE html>
<html>
<head>
  <title>Washapp</title>
  <meta name="viewport" content="width=device-width">
  <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
  <%= javascript_include_tag "application" %>

  <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
  <%= csrf_meta_tags %>

  <script>
    if (window.location.hash == "#_=_")
        window.location.hash = "";
  </script>

</head>
<body>
  <div data-role="page">
    <%= yield %>
  </div>
</body>
</html>

Heroku logs:

Heroku 日志:

2012-04-08T23:28:41+00:00 heroku[nginx]: 78.105.51.57 - - [08/Apr/2012:23:28:41 +0000] "GET / HTTP/1.1" 500 643 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19" washappdelete2.heroku.com
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]: Started GET "/" for 78.105.51.57 at 2012-04-08 16:28:43 -0700
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]: Processing by HomeController#index as HTML
2012-04-08T23:28:43+00:00 app[web.1]:   Rendered home/routa_list.html.erb within layouts/application (0.1ms)
2012-04-08T23:28:43+00:00 app[web.1]: Completed 500 Internal Server Error in 34ms
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]:     4:   <title>Washapp</title>
2012-04-08T23:28:43+00:00 app[web.1]: ActionView::Template::Error (application.js isn't precompiled):
2012-04-08T23:28:43+00:00 app[web.1]:     5:   <meta name="viewport" content="width=device-width">
2012-04-08T23:28:43+00:00 app[web.1]:     6:   <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.css" />
2012-04-08T23:28:43+00:00 app[web.1]:     7:   <%= javascript_include_tag "application" %>
2012-04-08T23:28:43+00:00 app[web.1]:     9:   <script src="http://code.jquery.com/mobile/1.0.1/jquery.mobile-1.0.1.min.js"></script>
2012-04-08T23:28:43+00:00 app[web.1]:     8:   
2012-04-08T23:28:43+00:00 app[web.1]:     10:   <%= csrf_meta_tags %>
2012-04-08T23:28:43+00:00 app[web.1]:   app/views/layouts/application.html.erb:7:in `_app_views_layouts_application_html_erb__2373145142857118006_42724320'
2012-04-08T23:28:43+00:00 app[web.1]:   app/controllers/home_controller.rb:4:in `index'
2012-04-08T23:28:43+00:00 app[web.1]: cache: [GET /] miss
2012-04-08T23:28:43+00:00 app[web.1]: 
2012-04-08T23:28:43+00:00 app[web.1]:

app/assets/javascripts/application.js

应用程序/资产/javascripts/application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

Repository: https://github.com/karangb/herokuProblem

存储库https: //github.com/karangb/herokuProblem

回答by Karan

Problem solved!

问题解决了!

It was simple - taken from 500 internal server error when I try to push my app onto Heroku

这很简单 -当我尝试将我的应用程序推送到 Heroku 时,取自500 个内部服务器错误

So based upon the heroku info that you provided I see that you are on the bamboo stack and that stack does not support Rails 3.1+. Only the cedar stack supports Rails 3.1+. You'll need to use the following command to create a new app on the cedar stack:

heroku create --stack cedar

因此,根据您提供的 heroku 信息,我看到您在竹栈上,并且该栈不支持 Rails 3.1+。只有 cedar 堆栈支持 Rails 3.1+。您需要使用以下命令在 cedar 堆栈上创建一个新应用程序:

heroku 创建 --stack 雪松

回答by Thaha kp

In config/application.rb, add

在 config/application.rb 中,添加

config.assets.initialize_on_precompile = false

and push to git, then heroku push.

并推送到 git,然后是 heroku 推送。

回答by benjgorman

Try adding

尝试添加

//= require jquery.mobile

//= require jquery.mobile

in your

在你的

app/assets/stylesheets/application.js

app/assets/stylesheets/application.js

amd set

amd 集

config.assets.compile = tue

config.assets.compile = tue

in your

在你的

config/enviroments/production.rb

config/enviroments/production.rb

回答by Jonathan

If you have anything like like javawithin app/assets, this will throw sprockets off. Naming it to something like appletsinstead will allow the contents of javascriptsdirectory to be compiled. Source

如果你有类似java之类的东西app/assets,这会让链轮脱落。将其命名为类似小程序的名称将允许javascripts编译目录的内容。来源

回答by Jonathan

Are you also setting

你也在设置

config.assets.initialize_on_precompile = false

This is a new change on Rails 3.2 (see the Docs)

这是 Rails 3.2 的新变化(参见文档

Nevertheless, you should be able to see an error during the slug compilation (as example below, if you do not set the above flag)

尽管如此,您应该能够在 slug 编译期间看到错误(如下例,如果您没有设置上述标志)

-----> Preparing app for Rails asset pipeline
       Running: rake assets:precompile
       rake aborted!
       could not connect to server: Connection refused
       Is the server running on host "127.0.0.1" and accepting
       TCP/IP connections on port 5432?

You can also try to run the rake precompile task locally, and see the error (again, as the documentation is suggesting).

您也可以尝试在本地运行 rake 预编译任务,并查看错误(再次,正如文档所建议的那样)。

回答by Mark

Try to set in config/enviroments/production.rb the following line to false:

尝试在 config/enviroments/production.rb 中将以下行设置为 false:

config.assets.compile = false

回答by Bruno

make sure there are no untracked files, do git status

确保没有未跟踪的文件,请执行 git status

maybe try, heroku run rake db:migrate

也许尝试, heroku run rake db:migrate