Сервер возвращает 404 по активам для PWA с помощью vue

#github #vue.js #service-worker #progressive-web-apps

#github #vue.js #service-worker #progressive-веб-приложения

Вопрос:

Я запускаю сборку NPM на основе шаблона PWA, который я использую.

Структура папок на сервере следующая:

my-project -> static, index.html , service-worker

Затем я разместил на сервере, и манифест и активы возвращают 404.

В настоящее время проект находится здесь.

https://evilernie44.github.io/my-project/

Любая помощь очень ценится.

Изменение маршрутов в манифесте и на двух разных серверах

Я хочу разместить котельную в качестве отправной точки для моего PWA

Ответ №1:

Теги вашего скрипта указывают на неправильный путь. Возьмем, к примеру, этот тег:

 <script type=text/javascript src=/static/js/app.98f21a65b373eaa50022.js></script>
  

Браузер преобразует его в https://evilernie44.github.io/static/js/app.98f21a65b373eaa50022.js , который не существует.
Правильный путь должен быть ./static/js/app.98f21a65b373eaa50022.js . Дополнительная точка указывает браузеру создать полный URL относительно текущего пути.

В качестве альтернативы вы можете указать абсолютный путь, например, /my-project/static/js/app.98f21a65b373eaa50022.js который указывает на правильное местоположение.

В заключение, любой из следующих 2 тегов скрипта будет работать:

 <script type=text/javascript src=./static/js/app.98f21a65b373eaa50022.js></script>
  
 <script type=text/javascript src=/my-project/static/js/app.98f21a65b373eaa50022.js></script>
  

Комментарии:

1. Спасибо, я попробую это сейчас. Я действительно смущен тем, почему при сборке приложения это не выполняется автоматически. Я просто ожидаю слишком многого>?#

2. Возможно, vue не знает о том, что github разместил ваше приложение в подкаталоге

3. Возможно, я пробовал это предложение. Просто чтобы уточнить, вы имеете в виду изменить скрипт внизу index.html ? Кроме того, нужно ли мне перестроить его, а затем повторно развернуть, или я должен иметь возможность просто изменить тег script?

4. Нужно ли будет также изменить остальные пути, также manifest.json и т.д.?

5. Да, все пути должны быть изменены в index.html . Я не уверен, как работают страницы github, но, вероятно, они будут автоматически обновляться при фиксации и нажатии

Ответ №2:

По умолчанию Vue CLI предполагает, что вы запускаете приложение от имени root, поэтому оно попытается загрузить файлы из ‘/’.

При развертывании в рабочей среде или во вложенной папке необходимо установить publicPath в vue.config.js

https://cli.vuejs.org/config/#publicpath