【问题标题】:My Rails 3 + Ember + Ember Rails + Ember Data app to Heroku/AWS doesn't load我的 Rails 3 + Ember + Ember Rails + Ember Data 应用程序无法加载到 Heroku/AWS
【发布时间】:2014-01-31 23:35:46
【问题描述】:

这让我发疯了,因为我在过去一周尝试排除了很多不同的事情,现在我来了。

我有一个带有这些 gem 的 Rails 3.2.13 应用程序(这里只显示了一个子集):

gem 'asset_sync'

gem 'ember-source', '~> 1.3.1'

gem 'ember-data-source', "~> 1.0.0.beta.6"

gem 'ember-rails'

gem 'emblem-rails', :git => 'git://github.com/alexspeller/emblem-rails.git'(用于模板)

每次我部署到 Heroku 并尝试访问它永远不会加载的 ember 应用程序时。我已经检查以确保它也是 production.rb 上的正确 Ember 变体。

另一个过去似乎有效的修复方法是不使用更新版本的 ember-data (https://github.com/emberjs/ember-rails/issues/264) 覆盖 ember-rails 供应商文件。我改为将 ember-source 和 ember-data-source 版本添加到 Gemfile。这似乎解决了这个问题,但 Heroku 仍然会挂起对我的 ember 应用程序的网络请求(查看 chrome 网络选项卡 - 它有时会挂在 html 上,有时会挂在带有 ember-app 的 js 文件上)。

为了排除 Heroku 的问题,我还尝试将我的应用程序部署到 AWS,但有时仍会遇到这些问题。

为了排除 Heroku 的静态资产作为问题,我还尝试将我的资产推送到 S3(使用asset_sync gem)并从那里提供它,但我仍然遇到这个问题,它会挂在页面上。但最终在部署后一段时间,它有时会起作用,但运行时速度非常慢。

另一个值得注意的是整个 Ember 应用程序都使用了 coffeescript。

有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails heroku ember.js ember-data


    【解决方案1】:

    Heroku 没有预编译我的资产因此没有加载页面是一个问题。

    这解决了它:

    config.assets.precompile << Proc.new do |path|
      if path =~ /\.(css|js)\z/
        full_path = Rails.application.assets.resolve(path).to_path
        app_assets_path = Rails.root.join('app', 'assets').to_path
        if full_path.starts_with? app_assets_path
          puts "including asset: " + full_path
          true
        else
          puts "excluding asset: " + full_path
          false
        end
      else
        false
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-11
      • 2013-08-08
      • 2013-03-15
      • 2014-08-29
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多