You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Strapi Swagger插件部署GCP App Engine后访问文档返回404问题咨询

问题根因

GCP App Engine 标准实例的运行时文件系统为只读模式,仅/tmp目录允许写入操作。你遇到的报错是因为Strapi的Swagger插件默认会在服务启动时尝试重新生成文档文件并写入/workspace/extensions/documentation/public/路径,触发了只读文件系统权限限制。即使本地已提前生成文档,只要生产环境启动时插件触发了写入逻辑就会报错,进而导致页面404。


解决步骤

  1. 关闭生产环境启动自动生成文档逻辑
    在项目config/env/production/plugins.js(无该文件则新建)中添加如下配置,禁止插件在生产环境启动时重新生成文档:
module.exports = {
  documentation: {
    enabled: true,
    config: {
      autoGenerate: false,
    }
  }
};
  1. 本地预生成文档并纳入部署文件
    本地启动Strapi服务,访问一次文档页面触发完整的文档生成流程,确认extensions/documentation/public/目录下已生成对应版本的文档文件。检查项目.gitignore和.gcloudignore文件,确保该目录没有被忽略,部署时会被同步上传到App Engine。
  2. 可选:构建阶段自动生成文档
    如果你不想手动本地生成,可以在package.json的build脚本中加入文档生成逻辑,App Engine部署阶段的构建环节拥有写入权限,会提前生成好文档文件:
{
  "scripts": {
    "build": "strapi build && node -e \"require('strapi-plugin-documentation/services/documentation').generateDoc()\""
  }
}
  1. 验证部署配置
    确认你的app.yaml中没有额外的路由规则拦截/documentation路径的静态资源请求,配置示例参考:
runtime: nodejs14
service: strapi-service
env: standard
instance_class: F2
handlers:
  - url: /(.*\.(gif|png|jpg|css|js|html))$
    static_files: public/\1
    upload: public/.*
  - url: /.*
    secure: always
    script: auto

完成以上配置后重新部署即可正常访问文档页面。


内容的提问来源于stack exchange,提问作者Juan Sebastián González

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:45:02