2016-09-04 6 views
1

Я попытаюсь уточнить название вопросов, потому что было непросто придумать название для моей проблемы.Выполнение приложения для обслуживания контента с разных базовых путей (конфигурации веб-пакетов и githubpages)

Вопрос больше связан с конфигурациями Webpack и githubpages.

Фон: Я сделал тестовый проект с угловым2 на github (https://github.com/SomePeaceStudio/manatelpa). Я тестировал, как построить проект с помощью webpack, а затем угадать его для производства.

Проблема: Местно, когда я строю проект и служить ему, подается с локального хоста: 8080/и все содержание правильно загружена с локального хоста: 8080/Ex:

GET localhost:8080/index.html 
GET localhost:8080/app.js 
GET localhost:8080/angular.png 

и так далее .. и работает как волшебство.

Когда я нажимаю мою папку «DIST» для Gh-страниц филиал https://github.com/SomePeaceStudio/manatelpa/tree/gh-pages (я использую GH-страницу для проекта), так что путь к моей странице будет: https://somepeacestudio.github.io/manatelpa/ в этом случае он загружает файл index.html из

GET https://somepeacestudio.github.io/manatelpa/ 

но он пытается получить остальную часть моего проекта от

GET https://somepeacestudio.github.io/app.bb10406340c613a712e4.css [HTTP/1.1 404 Not Found 46ms] 
GET https://somepeacestudio.github.io/polyfills.bb10406340c613a712e4.js [HTTP/1.1 404 Not Found 44ms] 
GET https://somepeacestudio.github.io/vendor.bb10406340c613a712e4.js [HTTP/1.1 404 Not Found 32ms] 
GET https://somepeacestudio.github.io/app.bb10406340c613a712e4.js [HTTP/1.1 404 Not Found 67ms] 
GET https://somepeacestudio.github.io/vendor.bb10406340c613a712e4.js [HTTP/1.1 404 Not Found 43ms] 
GET https://somepeacestudio.github.io/app.bb10406340c613a712e4.js 

и не от:

https://somepeacestudio.github.io/manatelpa/..... 

Неудивительно, что он не найден, и я не знаю, что с этим делать, все конфигурации сборки webpack находятся в config/folder (common + prod). Мне нужно это исправить.

Я не знаю, как справиться с этой проблемой .. я даже не знаю, как правильно это название, чтобы сделать некоторые погуглите ..

Должен ли я изменить способ, как содержимое загружается на моем index.html (он делает это автоматически), если это так, чтобы заставить его загрузить весь мой контент из baseurl/manatelpa/... Я ищу какое-то изящное решение, если оно есть.

Я, безусловно, не профессионал в конфигурациях webpack и ghpages.

ответ

0

Решение было простым, я должен был изменить "publicPath" выходного объекта WebPack:

publicPath: '/manatelpa/' 

Я редактировал его здесь: https://github.com/SomePeaceStudio/manatelpa/blob/a60070da7a0507bc2b6e3ce15b9bfd71df756649/config/webpack.prod.js#L14

И теперь все мои файлы подаются с/manatelpa /. ..

Отлично!

Кроме того, спасибо Ришату за предложение.

0

Я считаю, что это не имеет ничего общего с конфигурацией Webpack. Вам действительно нужно изменить каждый атрибут link и script: src значение атрибута таким образом, которое будет ссылаться на абсолютный путь /manatelpa, а не только /.

Так, в принципе, все, что выглядит как

<link href="/app.bb10406340c613a712e4.css" rel="stylesheet"> 

должен выглядеть

<link href="/manatelpa/app.bb10406340c613a712e4.css" rel="stylesheet"> 

, чтобы сделать их все правильно решить.

Если index.html создан Webpack, посмотрите на настройку Webpack output.publicPath.

+0

Эй! Было бы здорово, что бы решить мою проблему, и я уже думал об этом. Но дело в том, что при создании всех ссылок и тегов скриптов автоматически добавляются HtmlWebpackPlugin, и вы можете увидеть его здесь. Https://github.com/SomePeaceStudio/manatelpa/blob/master/config/webpack.common.js#L60 , Я попытался найти возможности настройки для baseUrl - не смог найти. И я не буду делать это вручную .. любые предложения? –