2

配置:Heroku 上的 Rails 4、HTML、CSS。

我有一个已经投入生产五个月的 Rails 4 应用程序。这是我的production.rb中的内容:

config.serve_static_assets = false

# Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false

# Generate digests for assets URLs.
config.assets.digest = true
config.assets.enabled = true
config.assets.initialize_on_precompile = true
config.action_controller.asset_host = "//dynasfakeurl.cloudfront.net"

每当我投入生产时,我都会使用 清理我的资产rake assets:clean,然后使用rake assets:precompile. 这会对我的资产进行指纹识别,并将其直接推送到我的 S3 静态文件存储桶,这些存储桶通过云端提供服务。然后我将我的应用程序实时推送到 Heroku。

在 .html.erb 主页上,我通过 Rails 标签调用我的静态文件,如下所示:

<%= image_tag "picture.png" %>
<%= stylesheet_link_tag "application" %>

哪个使用指纹正确渲染。例如,第二个最近生成了这个资产路径:http://dynasfakeurl.cloudfront.net/assets/application-17892abdffc77f1fb1be125bab.css

通常,这很好用。但是,我现在遇到了两次问题,在我最后一次推送 12-16 小时后,我所有的资产路径都自发地失去了指纹。例如,样式表标签最后生成了这个资产路径:http://dynasfakeurl.cloudfront.net/stylesheets/application.css. 哪个不存在。因此,当我加载页面时,它无法加载资产。

在过去的几个小时里,我一直在尝试调试它,但无法弄清楚为什么我的资产路径会在没有我推动任何东西的情况下自发地在生产中丢失它们的指纹。

4

0 回答 0