首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Hotwire Turbo streams正确渲染图像?

如何通过Hotwire Turbo streams正确渲染图像?
EN

Stack Overflow用户
提问于 2021-07-02 02:14:00
回答 1查看 154关注 0票数 1

我的问题:当使用Hotwire/Turbo渲染图像时,所有的URL都使用主机example.org而不是我的实际主机名进行渲染。常规视图很好,但是通过Turbo流呈现部分会导致像http://example.org/.../这样的ActiveStorage URL。

上下文:我有一个简单的Todo应用程序,具有工作视图,部分和turbo流,它们一起显示了Todo和相关用户的列表。当我将用户加入Todo时,turbo流呈现正确的部分,并将用户名和头像放在DOM中我想要的位置。但是,来自ActiveStorage的图像URL包含example.org主机名。

我已经在config/environments/*.rb中设置了我的标准URL选项,包括routes.default_url_options[:host]config.action_mailer.default_url_options[:host]。我还学习了config/initializers/application_controller_renderer.rb文件,您可以在其中设置http_host参数;但是,我已经设置了http_hosthttps布尔值,仍然使用example.org呈现我的image_tag

此外,我还发现了一些关于如何以编程方式操作默认渲染器的有限建议(以便修复该问题)。This source建议获取ApplicationController.renderer并覆盖属性,如下所示:

代码语言:javascript
复制
renderer = ApplicationController.renderer.new(
  http_host: request.host_with_port,
  https: (request.protocol == "https://"),
  "rack.session": request.session
)

但是broadcast_action_to方法似乎不接受renderer参数,所以这实际上对我在Turbo中没有帮助。

一定有我遗漏的配置,但我在Turbo或Hotwire文档中找不到它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-03 18:54:00

我想config.action_controller.default_url_options了。一旦我将其配置为与其他default_url_options相同,我的链接就开始正确呈现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68215105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档