【问题标题】:Unable to access Javascript outside Rails aplication无法在 Rails 应用程序之外访问 Javascript
【发布时间】: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


【解决方案1】:

这个 JS 文件不依赖于任何其他 JS。所以我们只是把那个 JS 文件放到 public 目录下。

添加 这是临时解决方案,因为当资产预编译时,公共/资产下的所有资产都将被清除并重新生成

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多