Страница не найдена при перезагрузке угловой страницы на Firebase

я развернул свое угловое приложение в firebase. Я вижу, что страница входа в систему прекрасна, но я получаю следующую ошибку при перезагрузке страницы:

This file does not exist and there was no index.html found in the current directory or 404.html in the root directory.

Why am I seeing this?

You may have deployed the wrong directory for your application. Check your firebase.json and make sure the public directory is pointing to a directory that contains an index.html file.
You can also add a 404.html in the root of your site to replace this page with a custom error page.

так как ошибка предполагает, что я проверил мой firebase.json файл, и он отображает это:

{
  "firebase": "******",
  "public": "dist",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ]
}

здесь вы можете видеть, что мой мой dist папка. Это dist папка на самом деле,где я размещаю все свои файлы (css,js, html и индекс.html) когда gulp строит все это. Структура папок выглядит следующим образом это:

dist
  css
  images
  js
  templates
  index.html

поэтому выше папку есть index.html страница -- так почему я получаю эту ошибку? Угловой должен вмешиваться здесь и обрабатывать всю маршрутизацию, но это, похоже, не так.

редактировать

enter image description here

2 ответов


я исправил проблему - эта проблема вызвана Firebase (действительно, все серверы, я думаю), полагая, что каждое Угловое состояние-это папка, которая должна содержать свой собственный index.html файл-очевидно, это не так.

то, что должно произойти, это только для того, чтобы ссылаться на наш index.html в корне папки. Для этого вам нужно изменить свой firebase.json файл следующим образом:

{
  "firebase": "app-name",
  "public": "dist",
  "ignore": [
    "firebase.json",
    "**/.*",
    "**/node_modules/**"
  ],
  "rewrites": [{
    "source": "/public/**",
    "destination": "/public.html"
  },
  {
    "source": "**",
    "destination": "/index.html"
  }]
}

важными частями здесь являются перезаписи и исходные объекты. См. firebase.json страница объяснение, подробнее об этом: военнослужащих.в JSON


2018 и имел одинаковую проблему. Katana24 дал хороший ответ, но с тех пор firebase немного обновилась. Вот обновленный ответ Katana24:

военнослужащих.в JSON:

{
"functions": {
    "predeploy": [
        "npm --prefix \"%RESOURCE_DIR%\" run lint"
    ],
    "source": "functions"
},
"hosting": {
    "public": "dist/YOURAPPNAME",
    "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
    ],
    "rewrites": [{
            "source": "/public/**",
            "destination": "/public.html"
        },
        {
            "source": "**",
            "destination": "/index.html"
        }
    ],
    "storage": {
        "rules": "storage.rules"
    }
}
}