Firebase 将所有网址重定向到 index.html

Firebase redirect all URLs to index.html

我正在尝试将所有 URL 重定向到我的 SPA 的 index.html。当 URL 是一个目录深度时,我下面的 firebase.json 有效,例如http://localhost:8000/page1 但没有更深的,例如http://localhost:8000/covid19-dashboard/page1/page1a 无法加载并给出控制台错误 Uncaught SyntaxError: Unexpected token '<'。我也尝试了以下但使用 "source": "**/**" 并发现了相同的结果。

{
  "firestore": {
    "rules": "firestore.rules",
    "indexes": "firestore.indexes.json"
  },
  "hosting": {
    "public": "dist",
    "target": "project-name",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  },
  "storage": {
    "rules": "storage.rules"
  }
}

这只是一个猜测,但请检查您的 <script> 标记以查看它们是否是相对 URL(例如 <script src="js/main.js">)。您需要将它们设为绝对(例如 <script src="/js/main.js">)以便当深层链接的相对路径发生变化时,它们将正确加载。

您看到的错误很可能是脚本加载的 .js 文件不存在的结果,因此加载了您的 index.html