我在rails app中有以下文件夹结构。
|-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%>
在生产中部署时,对于第一个请求,它将编译assets文件夹并将它们存储在缓存中。对于后续请求,它将从缓存中获取。但每次我主持并为一些文件生成第一个请求缓存,而不是为所有文件生成。
答案 0 :(得分:0)
您的问题不是很明确,但请确保两个用户在文件中都收到相同的指纹。如果指纹不同,则可能是错误,而不是使用cloudfront,但导轨应用程序出现问题。
导致此错误的最可能原因是某些多个应用程序工作程序正在运行(一些服务较旧的资产,一些较新的服务)。
如果上述方法无法帮助您解决问题,请使用您的rails设置的详细信息进行更新 - 缓存层,负载均衡器,应用服务器等。