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

GitHub Pages部署站点无法将OneSignal Service Worker文件放根目录报错问题

报错详情:

Installing service worker failed TypeError: Failed to register a ServiceWorker for scope ('https://username.github.io/') with script ('https://username.github.io/OneSignalSDKWorker.js?appId=<MY_APP_ID>'): A bad HTTP response code (404) was received when fetching the script.
问题原因

该报错是OneSignal默认从站点根目录请求Service Worker依赖的两个SDK脚本导致的,当对应文件没有存放在根目录路径下时,GitHub Pages会返回404错误,最终Service Worker注册失败。

解决方案
  • 优先适配方案:将OneSignal提供的OneSignalSDKWorker.js和OneSignalSDKUpdaterWorker.js两个文件上传到你的GitHub Pages仓库根目录,部署完成后即可直接解决问题。如果你的站点是通过前端框架自动构建生成,可以修改构建配置,将这两个文件打包输出到构建产物的根目录下即可。
  • 无法存放根目录的自定义配置方案:如果你确实无法将文件放到根目录,可以修改OneSignal初始化配置,指定SDK文件的实际存放路径。
    示例:假设你将两个SDK文件存放在站点的/static/onesignal/目录下,调整初始化代码如下:
    OneSignal.init({
      appId: "替换为你自己的OneSignal应用ID",
      serviceWorkerPath: "/static/onesignal/OneSignalSDKWorker.js",
      serviceWorkerUpdaterPath: "/static/onesignal/OneSignalSDKUpdaterWorker.js",
      path: "/static/onesignal/"
    })
    
  • Jekyll适配方案:如果你使用GitHub Pages默认的Jekyll构建模式,需要在仓库根目录创建一个名为.nojekyll的空文件,避免Jekyll的文件过滤规则忽略你上传的SDK文件,导致路径正确仍返回404的问题。

内容的提问来源于stack exchange,提问作者Md Abdus Sami Akanda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:48:03