как продолжать использовать html-файлы из общей папки в проекте vue в MPA (многостраничное приложение)

Я использую приложения vue в своих шаблонах django, используя webpack_loader. Есть много примеров, как это сделать (например, https://blog.gundammc.com/vue-js-django/), и все работает нормально.

Загадка в том, что когда я бегу yarn serve (или npm run serve), приложение отображается правильно на соответствующих страницах Django, но я не могу получить доступ к приложениям vue напрямую по ссылке, предоставленной serveкоманда. И было бы неплохо иметь доступ к "чистой" странице приложения vue без запущенного сервера Django, потому что было бы намного удобнее сначала разработать приложение vue, а только потом монтировать его в Django.

Так, например, если я сделаю npm run serve, сервер работает, и он сообщает мне, что:

  App running at:
  - Local:   http://localhost:8080/ 
  - Network: http://localhost:8080/

Но когда я пытаюсь получить доступ к localhost:8080 (или localhost:8080/APP_NAME_PAGE.html), ничего не отображается. Хотя само приложение правильно отображается в шаблоне django.

В vue.config.jsочень стандартно. Похоже на этот (заимствовано отсюда https://github.com/gundamMC/vue-django-multipage-example/blob/master/frontend/vue.config.js):

const BundleTracker = require("webpack-bundle-tracker");

module.exports = {
    publicPath: "http://127.0.0.1:8080/",
    outputDir: './dist/',

    chainWebpack: config => {
        config.optimization
            .splitChunks(false)

        config
            .plugin('BundleTracker')
            .use(BundleTracker, [{filename: '../frontend/webpack-stats.json'}])

        config.resolve.alias
            .set('__STATIC__', 'static')

        config.devServer
            .public('http://0.0.0.0:8080')
            .host('0.0.0.0')
            .port(8080)
            .hotOnly(true)
            .watchOptions({poll: 1000})
            .https(false)
            .headers({"Access-Control-Allow-Origin": ["\*"]})
    },

    pages: {
        index: 'src/main.js',
        new_page: 'src/new_page.js'
    }

};

Я знаю, что эта часть:

config.optimization
            .splitChunks(false)

заставляет vue не генерировать html-файлы, но даже если я закомментирую это, ничего не изменится. Что я делаю неправильно?

0 ответов

Другие вопросы по тегам