gpt4 book ai didi

ruby-on-rails - 如何为 CORS Rails 应用公开 Javascript Assets ?

转载 作者:行者123 更新时间:2023-12-04 12:52:20 25 4
gpt4 key购买 nike

我正在构建一个使用 CORS 并具有公共(public) 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>

现在 events.js 文件位于我的应用程序的 /app/assets/javascripts/events.js 中。当我编译并推送到 Heroku 时,它们都被一起缩小到 /assets/application-320d973ae0689d7f.js 文件中。

我的问题是,如何使 events.js 文件成为外部网站可以通过直接 URL 路径从我的应用程序访问的独立文件?

最佳答案

公开

我们之前通过将 javascript 放入 public 目录来实现此功能:

#public/events.js
...

这允许您向人们提供以下 URL:

<script src="http://domain.com/events.js"></script>

尽管这将不会绑定(bind)到您的 Assets 管道中,但它会为您提供一个中央文件,您可以在需要时随时调用该文件。这一点非常重要,就像您有第三方引用文件一样,您需要他们至少有一个单一的引用点。


CORS

提供单一引用对于 CORS policy 至关重要您的应用程序,因为您必须提供明确的“资源”。我建议使用 rack-cors gem顺便说一句:

#config/application.rb
config.middleware.use Rack::Cors do
allow do
origins '*'
resource '/events.js', :headers => :any, :methods => [:get]
end
end

关于ruby-on-rails - 如何为 CORS Rails 应用公开 Javascript Assets ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25689991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com