ruby-on-rails - 当 config.assets.initialize_on_precompile 为 false 时设置常量

标签 ruby-on-rails ruby-on-rails-3.1 heroku asset-pipeline

在 Heroku 上部署需要 application.rb 中的 config.assets.initialize_on_precompile=false。来自Rails Guide它说这“部分加载您的应用程序”。

所以我想知道在编译 Assets (例如 *.js.erb)中设置一些常量的最佳实践是什么?将此标志设置为 false 后,我无法使用初始化程序中设置的任何内容。我不是很清楚应用程序的哪些部分被加载,以及我如何能够在执行编译步骤之前设置任何常量、变量等。

谢谢!

最佳答案

我遇到了类似的情况,幸运的是我能够轻松解决它。我知道 config.assets.initi.... 正在 heroku 上执行,因为 heroku 文档要求它。在此之前,我只需要手动加载我的初始化文件。我只想要一个 /config/initializers/settings.rb 文件,所以我为此添加了一个要求。这解决了问题。

...
#at the end of the /config/application.rb file
require Rails.root.join("config/initializers/settings") #this is not loaded automatically in the assets:precompile task, that's why we need this
config.assets.initialize_on_precompile = false
...

关于ruby-on-rails - 当 config.assets.initialize_on_precompile 为 false 时设置常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8951496/

相关文章:

mysql - 范围的 ActiveRecord 嵌套查询

ruby-on-rails - Spriting with Compass - 图标的大小应该一样吗?

ruby-on-rails - Rails 与几乎所有其他模型的关联

python - 无法在 Django 站点上配置 Facebook 登录

ruby-on-rails - Rails_admin 显示对象名称而不是 ID

ruby-on-rails - 在 Rails 3.1 中使用不显眼的 Javascript(数据远程)的 Coffeescript 和 Haml

ruby-on-rails-3.1 - 从其父应用程序运行 Rails 引擎的规范

ruby-on-rails - 将 "rails runner"用于 cron 作业是非常占用 CPU 的 - 替代方案?

heroku - 未知网址展示次数

node.js - Lambda 函数在简单连接到 Redis 时超时