Webpack пытается загрузить build.js из подкаталога - PullRequest
0 голосов
/ 02 мая 2018

Я настраиваю базовое приложение vue с помощью vuetify / vue-router, и при загрузке базового URL '/' все работает нормально. Я могу без проблем нажимать на / управлять / продуктами.

Однако при загрузке / управлении / продуктами напрямую, набрав в адресной строке, я получаю эту ошибку:

Failed to load resource: the server responded with a status of 404 (Not Found)

Кажется, он хочет загрузить /manage/dist/build.js вместо /dist/build.js.

Могу ли я изменить свой webpack.config.js, чтобы убедиться, что вызывается правильный build.js?

output: {
  path: path.resolve(__dirname, './dist'),
  publicPath: '/dist/',
  filename: 'build.js'
},
resolve: {
  extensions: ['.js', '.vue'],
  alias: {
    '@' : path.resolve(__dirname, './src'),
    'vue$': 'vue/dist/vue.esm.js',
    'public': path.resolve(__dirname, './public')
  }
}

vue-router режим 'hash' работает, но я бы хотел использовать режим 'history' для более чистых URL.

Для справки: я использовал этот шаблон

vue init vuetifyjs/webpack-simple

EDIT:

Я нашел решение. Шаблон vuetifyjs / webpack-simple с самого начала имел неверную конфигурацию. Внутри index.html я изменил:

<script src="./dist/build.js"></script>

до

<script src="/dist/build.js"></script>

И убедился, что эти опции присутствовали внутри webpack.config.js:

devServer: {
    historyApiFallback: true
},

1 Ответ

0 голосов
/ 02 мая 2018

Режим vue-router 'hash' работает, но я бы хотел использовать режим 'history' для более чистых URL

Задача History API состоит в том, чтобы позволить вам отображать сгенерированные DOM и серверные страницы друг на друга.

Это означает, что если в JavaScript по какой-либо причине произошел сбой , сервер может доставить страницу. Это означает, что если кто-то делает глубокие ссылки на страницу на вашем сайте, то сервер может просто доставить эту страницу (в отличие от доставки домашней страницы, а затем использовать JavaScript для преобразования ее в нужную страницу).

Вам необходимо написать серверный код, который доставит страницу.

...