Jam*_*mes 8 javascript ruby-on-rails import-maps ruby-on-rails-7
我正在尝试使用新的 Rails 7 导入映射功能导入托管在 CDN 上的 JS 包。然而,每当我的 Rails 项目加载时,我都会收到CORS以下形式的相关错误:
Access to script at 'https://cdn.vender-application.com/package.js' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Run Code Online (Sandbox Code Playgroud)
我的importmap.rb看起来像这样:
pin "va_cdn", to: "https://cdn.vender-application.com/package.js"
Run Code Online (Sandbox Code Playgroud)
我将rack-corsgem 与cors.rb文件一起添加,但没有效果。cors 文件示例:
config/initializers/cors.rb:Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins '*'
resource '*', headers: :any, methods: :any
end
end
Run Code Online (Sandbox Code Playgroud)
*起源。我使用http://127.0.0.1:3000的是错误消息中列出的确切来源。我尝试了两种方法resource '*'和一种更具体的方法:Rails.application.config.middleware.insert_before 0, Rack::Cors do
allow do
origins 'http://127.0.0.1:3000'
resource '/', headers: :any, methods: :any
resource '/index', headers: :any, methods: :any
end
end
Run Code Online (Sandbox Code Playgroud)
我似乎是 importmaps 特有的东西,因为此代码将成功获取包:
<% content_for :head do %>
<%= javascript_include_tag "https://cdn.vender-application.com/package.js" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
我更愿意使用新推荐的方式来获取此包,而不是内联调用。
| 归档时间: |
|
| 查看次数: |
931 次 |
| 最近记录: |