【问题标题】:Rails 4 - javascript runtime required in productionRails 4 - 生产中需要 javascript 运行时
【发布时间】:2014-01-31 10:47:22
【问题描述】:

我刚刚将 Rails 3.2.x 应用程序更新到 4.0.2。 当我部署到生产环境(ubuntu、MRI 2.0)时,我遇到了关于缺少 javascript 运行时的老错误。

我通过安装 node 快速修复了它,但这让我感到奇怪。

我更喜欢在本地预编译资产,将它们检入 git,然后将它们与应用程序的其余部分一起推送到生产服务器。

有了 Rails 3.2,这个系统一直让我不必关心生产环境中的 js 运行时,因为应用程序不需要编译 coffeescript 或运行丑陋的程序。

所以,问题是:Rails 4 发生了什么变化?是否有配置选项来控制此行为? 我检查了我的(rails 4)配置文件,我认为生产环境已经配置为不回退到实时编译。


资产相关的配置选项:

config/application.rb

config.assets.precompile += ['html5shim.js']
config.assets.initialize_on_precompile = false

config/environments/production.rb

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

# Compress JavaScripts and CSS
config.assets.js_compressor = :uglifier
# config.assets.css_compressor = :sass

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

# Generate digests for assets URLs
config.assets.digest = true

# Version of your assets, change this if you want to expire all your assets
config.assets.version = '1.0'

【问题讨论】:

  • 您能否发布您的 production.rb 以便我们查看配置。您是否在 environment.rb 中指定了任何覆盖定义?
  • 完成。难道是因为config.assets.js_compressor = :uglifier
  • 另外:不,在 environment.rb 中没什么特别的
  • 指南建议在生产中设置config.assets.compress = true,但这对您的问题没有帮助。您可以尝试在生产中评论js_compressor-line 吗?抱歉,我无法轻易复制。
  • 不确定“配置资产”指南,但您链接的第二个网址与从 Rails 3.0 升级到 3.1 相关:-)

标签: ruby-on-rails ruby asset-pipeline


【解决方案1】:

以防有人像我一样遇到这个问题。我遇到了同样的问题,此链接为我指明了正确的方向:https://mattbrictson.com/upgrading-to-rails-4-with-capistrano。具体如下声明:在 Rails 4 中,标准 Gemfile 不再具有 :assets 组,这意味着资产管道 gem 始终在所有服务器上的生产环境中加载。我在本地预编译资产并将它们上传到生产环境,因此没有理由在生产服务器上使用 JS 运行时。

就我而言,我将:asset 组添加到我的Gemfile 中,将与资产相关的宝石放在那里。在我的情况下是:

group :asset do
  gem 'uglifier'
  gem 'execjs'
end

我在生产安装包中的 capistrano 任务没有 :asset 组,因此在此更改之后,生产不再需要 JS 运行时。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多