【发布时间】:2014-08-07 08:04:15
【问题描述】:
我们有一个可供不同应用程序访问的 JS 文件。
这些应用程序能够从我们部署的 Heroku 临时应用程序访问 JS(例如,https://xyx.herokuapp.com/assets/businesses/affiliate/affiliate.js),但无法访问文件(例如,来自部署在 Digital Ocean 上的生产环境的 https://ourlivesite.com/assets/businesses/affiliate/advowire_affiliate.js。
似乎与资产预编译有关,但无法解决问题。
谁能帮助我们找出问题所在?
【问题讨论】:
-
在生产环境中,Rails 不提供单独的 JS 文件。它将它们组合成清单文件(application.js 和 config.assets.precompile 中指定的其他文件)并提供清单文件。您可以将 js 文件添加到 production.rb 中的 config.assets.precompile 以使其可供不同的应用程序访问,但我不确定这是否是正确的方法它。
-
来自指南
In production, Rails inserts an MD5 fingerprint into each filename so that the file is cached by the web browser.所以每次我部署应用程序时,文件的名称都会改变,这在我们的场景中不起作用,因为我们必须将此文件分发给许多站点所有者。每次部署新功能时,我们都不能要求所有者更改文件名。
标签: javascript ruby-on-rails-3 heroku asset-pipeline digital-ocean