【问题标题】:Amazon cloudfront giving different assets for different user?亚马逊云端为不同的用户提供不同的资产?
【发布时间】:2016-03-21 13:02:23
【问题描述】:

我在 Rails 应用程序中有以下文件夹结构。

|-assets
  |-javascript
    |-lib
        bootstrap.js
        jquery.js
    application.js
  |-styleesheet
     |-lib
       bootstrap.js
  application.js

静态资产由不同的人托管在云端,我不知道它是如何完成的。

我在 production.rb 中给出了以下配置。

config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?
config.assets.compile = true
config.action_controller.asset_host = 'cloudfront url'

在视图页面中会是这样的:

<%[application,lib/bootstrap].each do |css_url| %>
   <%= stylesheet_link_tag css_url%>
<%end%>

<%[application,lib/bootstrap,lib/jquery].each do |js_url| %>
   <%= javascript_include_tag js_url%>
<%end%>

当部署在生产环境和第一个请求时,它将编译资产文件夹并将它们存储在缓存中。对于后续请求,它将从缓存中获取。但是每次我托管并为某些文件而不是所有文件生成第一个请求缓存时。

【问题讨论】:

  • 您的应用应为用户下载哪些资产(指纹和姓名)?是否所有用户都被告知下载相同的资产?向我们展示有关您的 cloudfront 设置的更多信息。 Cloudfront 只是服务器或不(有错误)用户请求的资产,但它是告诉用户该资产的 URL 的轨道)
  • @Leito 抱歉,这就是我们卡住 Rails 设置和 cloudfront 设置的地方,由不同的人完成,我无权访问。我想确保我这边没有错误。我用配置数据更新了问题。请通过它

标签: javascript css ruby-on-rails amazon-cloudfront


【解决方案1】:

您的问题不是很清楚,但请确保两个用户在文件中收到相同的指纹。如果指纹不同,则可能不是 cloudfront 的错误,而是您的 rails 应用程序有问题。

此错误的最可能原因是一些多个应用程序工作人员正在运行(一些服务旧资产和一些新资产)。

如果上述方法不能帮助您解决问题,请更新您的 Rails 设置细节 - 缓存层、负载均衡器、应用程序服务器等。

【讨论】:

  • 我更新了我的问题。问题是由不同的人处理的应用程序的设置。我们没有任何相关文件。
猜你喜欢
  • 2013-01-21
  • 2017-03-03
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 2015-01-02
  • 1970-01-01
  • 2015-03-15
  • 1970-01-01
相关资源
最近更新 更多