javascript - Rails 4 应用程序 - Heroku/Cloudfront - Assets 未正确从源提供服务

标签 javascript ruby-on-rails ruby heroku amazon-cloudfront

我有一个 Rails 4 应用程序,我们在其中使用 cloudfront 作为 CDN。

生产.rb文件中,我们有以下代码:

config.action_controller.asset_host = "example3579.cloudfront.net"

我们已经做了一些相当彻底的 Assets 分离。从 Assets 管道的 Angular 来看,这可能并不可取,但它应该使调试这个问题变得非常容易。

我正在处理的特定页面是 users#edit View ,但问题是普遍存在的。

users#edit 操作使用它自己的布局:views/layouts/user_edit.html.erb

views/layouts/user_edit.html.erb 文件调用此 JavaScript。

<%= javascript_include_tag 'user_edit'%>

assets/javascripts/user_edit.js

//= require jquery
//= require jquery_ujs
//= require jquery.validate.min
//= require ./webarch/form_validations

在本地主机上,这是有效的。我可以像这样在浏览器中访问js:

http://localhost:3000/assets/user_edit.js

但是在使用 heroku 进行生产时,该站点会查找此文件:

<script src="http://example3579.cloudfront.net/javascripts/user_edit.js"></script>

该文件不起作用。我无法在浏览器中访问,并且 javascript 未在页面上呈现。我已经预编译了 Assets 。

最佳答案

添加gem 'rails_12factor', group: :product # 对heroku 上的rails 4 资源有帮助

在/config/environments/production.rb

config.assets.compile = true

这应该有效

关于javascript - Rails 4 应用程序 - Heroku/Cloudfront - Assets 未正确从源提供服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29033548/

相关文章:

javascript - 安全 header 在 PayPal Mass Payments 中无效

javascript - jQuery 如何将唯一 ID 添加到动态表单输入字段

javascript - ajax 调用不更新 Rails 上的内容

ruby-on-rails - 投票功能 Ruby on Rails - 简单问题

ruby - 您喜欢哪种风格的 Ruby 字符串引用?

javascript - 意外的标识符 JavaScript

javascript - Gulp Browserify 结合 JS

javascript - 淡出、淡入 : Variable references lost

ruby-on-rails - Rails 在搜索中组合多个列

ruby-on-rails - rails : validation for top level domain only