You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何测试生产环境Confluence Cloud插件及解决加载失败问题

解决生产环境Confluence插件测试问题的思路

我来帮你理清这个问题的核心原因,以及正确测试生产环境插件的步骤:

首先,为什么会出现“Tunnel ...ngrok.io not found”报错?

你修改了atlassian-connect.json里的baseUrl为S3地址,但仍然运行npm start——这个命令是本地开发专用的,它会自动启动ngrok隧道,并且强制把atlassian-connect.json里的baseUrl覆盖成ngrok的临时域名。这就导致了配置冲突:Confluence试图访问你设置的S3地址,但npm start的逻辑还在找ngrok隧道,最终报错。

生产环境插件的正确测试步骤

1. 打包生产环境代码

先运行项目的生产打包命令,生成优化后的静态资源:

npm run build

这个命令会在项目的dist(或类似)目录下生成所有需要部署的文件,包括插件的JS、CSS、HTML以及atlassian-connect.json

2. 配置并上传文件到S3

  • 开启S3静态网站托管:在S3桶的“属性”里找到静态网站托管,启用它,设置索引文档为index.html(如果插件有需要,还要设置错误文档)。
  • 配置CORS规则:确保S3桶允许你的Confluence测试域名(my_project.atlassian.net)跨域请求资源。示例CORS规则可以这样设置:
    [
      {
        "AllowedHeaders": ["*"],
        "AllowedMethods": ["GET", "POST", "OPTIONS"],
        "AllowedOrigins": ["https://my_project.atlassian.net"],
        "ExposeHeaders": []
      }
    ]
    
  • 上传打包文件:把dist目录下的所有文件上传到S3桶的根目录,确保所有文件的访问权限设置为“公开可读”(或者通过CloudFront配置更安全的访问策略)。
  • 更新atlassian-connect.jsonbaseUrl:把这个文件里的baseUrl改成S3的静态网站域名(比如https://your-bucket-name.s3-us-west-2.amazonaws.com,或者你配置的CloudFront自定义域名),然后重新上传到S3。

3. 在Confluence测试环境重新安装插件

  • 先卸载之前安装的本地版本插件,避免冲突。
  • 然后通过两种方式安装S3托管的版本:
    • 方式一:使用Confluence的“上传插件”功能,直接上传S3上的atlassian-connect.json文件(或者输入该文件的公开URL)。
    • 方式二:利用你提到的“市场列表”,将插件添加到列表中,然后从列表安装。
  • 安装完成后,刷新Confluence页面,检查浏览器控制台是否有资源加载错误,验证插件功能是否正常。

额外的测试建议

  • 如果需要更贴近生产环境的预发布测试,可以使用Atlassian的Staging环境(如果你的订阅支持),或者创建一个独立的Confluence测试站点来模拟生产环境的配置。
  • 确保插件代码中的静态资源引用都是基于baseUrl的绝对路径,或者在打包时配置了正确的publicPath,避免出现资源404错误。
  • 查看S3的访问日志,如果插件加载失败,可以通过日志确认Confluence是否成功请求了S3资源,以及是否有权限或路径错误。

内容的提问来源于stack exchange,提问作者Tim Nuwin

火山引擎 最新活动