Fer*_*ria 2 ruby-on-rails heroku cors asset-pipeline
我正在构建一个使用 CORS 并具有公共 API 的 Rails 应用程序。要使 API 正常工作,客户需要嵌入我在网站上托管的 Javascript 文件。因此,例如,他们需要将以下内容添加到他们的网站:
<script type="text/javascript" src="http://www.mywebsite.com/assets/events.js"></script>
<script type="text/javascript">
//Call to public API method
track();
</script>
Run Code Online (Sandbox Code Playgroud)
现在events.js文件位于/app/assets/javascripts/events.js我的应用程序中。当我编译并推送到 Heroku 时,所有这些都被一起缩小到/assets/application-320d973ae0689d7f.js文件中。
我的问题是,如何使events.js文件成为一个独立文件,可从我的应用程序使用直接 URL 路径访问外部网站?
民众
我们之前通过将 javascript 放入public目录中来实现此功能:
#public/events.js
...
Run Code Online (Sandbox Code Playgroud)
这允许您向人们提供以下 URL:
<script src="http://domain.com/events.js"></script>
Run Code Online (Sandbox Code Playgroud)
尽管这不会绑定到您的资产管道中,但它会为您提供一个中央文件,您可以在需要时随时调用该文件。这非常重要,就像您有第三方引用文件一样,您至少需要他们有一个引用点。
CORS
提供单一参考对于应用程序的CORS 策略至关重要,因为您必须提供明确的“资源”。顺便说一下,我建议为此使用rack-cors gem:
#config/application.rb
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '/events.js', :headers => :any, :methods => [:get]
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1889 次 |
| 最近记录: |