Ruby on rails 3.1 为什么rake资产:开发中的预编译会导致问题,而不是在我的生产环境中

Ruby on rails 3.1 为什么rake资产:开发中的预编译会导致问题,而不是在我的生产环境中,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails 3.1,Asset Pipeline,我已将heroku上的应用程序升级为cedar stack,以便资产管道正常运行。我按照中给出的说明选择在本地编译资产 这已经创建了一个目录public/assets。生产中的一切都很完美(css、js,没有问题)。回到我的开发环境似乎会导致js无法正常工作 在environments/production.rb中 在environments/development.rb中 我已经检查了源页面,所有文件都正确加载,没有重复条目。我读过一些关于是在本地编译资产还是在生产中编译资产的问题,但这些问题

我已将heroku上的应用程序升级为cedar stack,以便资产管道正常运行。我按照中给出的说明选择在本地编译资产

这已经创建了一个目录public/assets。生产中的一切都很完美(css、js,没有问题)。回到我的开发环境似乎会导致js无法正常工作

在environments/production.rb中

在environments/development.rb中


我已经检查了源页面,所有文件都正确加载,没有重复条目。我读过一些关于是在本地编译资产还是在生产中编译资产的问题,但这些问题似乎都没有帮助。在恢复开发javascript代码时,我是否还缺少其他东西?这是正确的步骤吗?谢谢

好的,我好像已经解决了

在environments/development.rb中更改此行

对此

不确定为什么会这样,但请阅读rails指南和报价:

当调试模式关闭时,链轮连接并在所有文件上运行必要的预处理器。当调试模式关闭时,上面的清单将生成:



希望这能帮助有类似问题的人。

我最终也找到了这个解决方案。我看到config.assets.debug导致浏览器下载在“/=require”指令中指定的javascript文件。然而,由于“/=require”指令,Rails还将javascript文件连接在一起。因此,我页面上的那些javascript代码被运行了两次。
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = true
config.assets.digest = true
config.assets.compress = false
config.assets.debug = true
config.assets.compile = true
config.assets.debug = true
config.assets.debug = false
<script src="/assets/application.js" type="text/javascript"></script>