提问人:Shay. 提问时间:11/10/2023 最后编辑:Shay. 更新时间:11/10/2023 访问量:35
如何配置 Rails 中内置的 URL 助手生成的协议?
How to configure the protocol generated by built-in URL helpers in Rails?
问:
在生产环境中,我的 Rails 应用程序 (Rails 7.0) 位于处理 SSL 的 CDN 后面。SSL 在将私有 VPC 中的请求发送到我的应用程序之前在 CDN 终止,该应用程序配置为不安全,因为它未向公共 Internet 公开。
在大多数情况下,这不会影响 Rails URL 帮助程序 - 只要我使用路径帮助程序而不是 URL 帮助程序来导航站点,它就会在链接之间维护协议。但是,Rails 中有一些地方,例如 ActiveStorage 直接上传库,其中 Rails 对内部生成的 URL 助手的使用进行了硬编码(特别是)。由于我的应用在内部配置为不安全,因此这些 URL 是使用该协议生成的,并且由于安全设置,大多数浏览器会拒绝向它们发出的请求。这完全破坏了直接上传,我找不到一种方法来更改这些 URL 的生成方式,因为我无法访问它们的路由配置。https
rails_direct_uploads_url
http://
我尝试设置默认 URL 选项 (),这不会影响生成的 URL。Rails.application.routes.default_url_options[:protocol] = 'https'
我尝试直接在初始值设定项中更新路由对象中的默认值,如下所示:
ActiveSupport.on_load(:action_controller) do
Rails.application.routes.named_routes.get(:rails_direct_uploads).defaults[:protocol] = 'https'
end
它们似乎是为每个请求动态生成的,也许吧?这会导致帮助程序在控制台中执行此操作时生成 HTTPS URL,但当我通过初始值设定项在应用程序中运行实际页面上时,它不会更改在实际页面上生成的 URL。
设置对此不起作用,因为内部 Rails 控制器不继承自 。default_url_options
ActionController
ActionController
答: 暂无答案
下一个:Kamal 没有跑到完成
评论