按照Apipie入门教程配置后访问/apipie提示路由不存在是什么原因?
问题原因
- 执行
rails g apipie:install生成初始化文件时,未自动将Apipie引擎挂载规则写入config/routes.rb,是最常见的触发原因 - 自定义了Apipie配置中的文档访问前缀,和实际访问的
/apipie路径不匹配 - Apipie默认仅在开发环境开启文档服务,生产/测试环境默认未挂载路由
解决步骤
- 首先检查
config/routes.rb,确认是否存在Apipie引擎挂载配置,不存在则手动添加:
Rails.application.routes.draw do # 你的其他业务路由规则 mount Apipie::Engine => '/apipie' end
如果自定义了挂载路径,访问对应配置的路径即可。
检查
config/initializers/apipie.rb配置项,确保文档访问路径匹配:
找到config.doc_base_url参数,保持默认值为/apipie即可和挂载路径对应。如果需要修改文档访问路径,同步修改挂载规则和该参数即可。非开发环境访问的额外配置:
如果需要在生产/测试环境访问接口文档,在config/initializers/apipie.rb的配置块中添加开启配置:
Apipie.configure do |config| # 原有配置保持不变,新增以下配置 config.enabled = true # 生产环境不需要热重载控制器文档的话可以保持默认关闭即可 config.reload_controllers = Rails.env.development? end
- 所有配置修改完成后,重启Rails服务,再次访问
/apipie即可正常加载文档。
内容的提问来源于stack exchange,提问作者TomasLangebaek
相关产品推荐
相关产品推荐

