【问题标题】:rails precompile Why javascript does not work locally but at heroku it worksrails precompile 为什么javascript不能在本地工作,但在heroku它可以工作
【发布时间】:2012-06-18 19:13:30
【问题描述】:

因此,在我预编译资产之前,该应用程序在本地运行良好。在部署到 heroku 时,我进行了资产预编译然后部署,它在 heroku 上运行良好,但现在似乎 javascript 坏了。

关于如何解决它的任何建议?我应该删除公用文件夹中的文件还是使用一些配置?

提前致谢

更新

我在开发模式下加载的每个资产文件都会得到一个,这正常吗?

Started GET "/assets/home.js?body=1" for 127.0.0.1 at 2012-06-15 19:16:48 +0100
Served asset /home.js - 304 Not Modified (0ms)

这很奇怪。我正在使用 twitter 引导程序,现在为了测试 javascript 是否搞砸了,我添加了一个工具提示 html 示例来检查它是否也崩溃并且它确实有效。

但我在菜单栏的下拉菜单不起作用。这有多奇怪?

【问题讨论】:

  • 您是否尝试过在本地与在 Heroku 上运行时相同的环境(生产、登台等)中运行?
  • 我现在在生产环境中做了。它甚至无法加载css。我不知道为什么。它说 application-XXXXXXXXXXX.css 找不到,但它在 public/assets

标签: javascript ruby-on-rails ruby ruby-on-rails-3 twitter-bootstrap


【解决方案1】:

我终于解决了这个问题。

刚刚改在config/environments/development.rb

config.assets.debug = true

config.assets.debug = false

现在 javascript 可以正常工作了

更新

现在,当我遇到这个问题时,我实际上运行rake assets:clean 并清理浏览器缓存。这将使您的应用像在开发工作中一样工作。

如果您想要一个更好的流程,您可以改为创建一个新分支,在其中运行预编译并保持主分支干净。

另一种选择是在 heroku 上运行预编译,这样您就不必在本地进行。我还没有尝试过,但是您必须启用一个“测试版”功能,这样它才能在所有应用程序中正常工作。你可以阅读它here

【讨论】:

  • 这对我也有用。此设置所在的文件是 config/environments/development.rb
  • 我将 config.assets.debug 更改为 false 并运行 rake assets:clean 但在我的情况下,它仍然不起作用。还有什么建议吗?
  • 有人可以重新提出问题吗?
  • @Metaphysiker 嗨!您应该针对您的问题创建一个新问题。 “重新开放”这不会带来新的答案
猜你喜欢
  • 2021-04-26
  • 2021-05-10
  • 2012-04-01
  • 1970-01-01
  • 2021-01-14
  • 2023-03-10
  • 2012-01-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多