ruby-on-rails - 如何从生产 Rails 应用程序中的 URL 中删除端口 3000
问题描述
我在 Rails 5.2.3 应用程序中同时使用_path
和_url
助手。一切都在开发中。当我在生产中部署它时,使用_url
帮助程序设置的 URL 会在 HTML 中打印出来,https://127.0.0.1
而不是打印到实际的主机上。
我尝试将其添加到config/environments/production.rb
:
config.action_controller.default_url_options = { host: 'example.com' }
但这会将 URL 转换为https://example.com:3000
,从而破坏链接。(Puma 在 3000 端口上运行,但它在 nginx 后面,它在 80 端口上提供服务。)
有谁知道可能是什么原因造成的?RAILS_ENV
设置为production
。
解决方案
代替
config.action_controller.default_url_options = { host: 'example.com' }
在 production.rb 中试试这个
Rails.application.routes.default_url_options[:host] = 'your_host.com'
推荐阅读
- graphviz - 发现使用 Graphviz 生成子图 DAG 的困难
- java - 极其紧凑的 UUID(使用所有字母数字字符)
- firebase - Flutter / Firebase - 如何创建包含水平列表视图的垂直列表视图
- c - 从 C 中的文件中读取一行并提取输入的数量
- node.js - 部署后如何在 Heroku 中维护不在 git repo 中的文件
- sql-server - 不根据 HISTORY_RETENTION_PERIOD 政策删除过期数据
- delphi - 我如何在 delphi 中使用 TRect 来绘制角度?
- c# - 找出随机值为 1-6 的至少 6 个浮点数是否具有相同值的最简单方法是什么(在 c# 中)
- google-apps-script - 在电子表格中列出 Google Drive 文件夹中的文件
- python - 有效的正则表达式,用于减少 Python 中由特定分隔符分隔的完全重复的短语