使用类星体构建多个页面

Build multiple pages using quasar

我需要使用 Quasar 构建一个多页面网站以托管在 Netlify 上,但 Quasar 仅构建 index.html

我已经尝试使用 Quasar buildQuasar build --mode ssr。两者都失败了超过 index.html.

有没有实现多个页面的方法?

Quasar框架默认构建单页应用,即你的index.html页面是唯一的页面,而不是去不同的静态页面,它使用Vue路由器加载动态页面和组件到你心满意足:)

查看此 Quasar 文档,该文档解释了 SPA(单页应用程序)及其工作原理(以及为什么这是最好的做法): https://quasar.dev/quasar-cli/developing-spa/introduction#Introduction

查看此 Quasar 文档以了解如何向您的应用添加更多路由(页面): https://quasar.dev/layout/routing-with-layouts-and-pages#Defining-Routes

Quasar Framework 绝对是正确的选择,所以坚持下去。我很乐意为您介绍任何事情。我已经为近十几个客户使用了该框架,其中许多最近被投资者估值为数百万。 Quasar 是您能想到的任何平台的最佳组合,从简单的网站到将被数百万人使用的复杂的网络和移动应用程序;它出色地完成了工作。

我已经编写应用程序和网站 20 年了,没有什么比 Quasar 更容易使用的了。你会爱上它的!

SPA的概念很好,但是还是不能满足所有人的需求,比如有一个后端app(比如django)不愿意花很多时间去开发休息api 或 graphql 来提供 SPA 内容。

归根结底,Quasar cli 的核心只是一个 webpack 配置,您可以自定义它来实现您想要 webpack 可以做的任何事情,包括多页面应用程序,这是实现此目的的快速方法:

apps/myapp/pages.js

module.exports = {
  main_page: {
    entry: `${__dirname}/pages/main/main_page.js`
  }
  blog_entry_page: {
    entry: `${__dirname}/pages/blog/blog_entry_page.js`
  }
  ...
}

quasar.conf.js:

const HtmlWebpackPlugin = require('@quasar/app/node_modules/html-webpack-plugin')
const pages = require('./apps/myapp/pages')

module.exports = function (ctx) {
  return {
    ...
    build: {
      ...
      extendWebpack (cfg) {
        ...
        Object.keys(pages).forEach(function (page) {
          // Add page webpack entry
          cfg.entry[page] = pages[page].entry

          // Output an html file for the page
          cfg.plugins.push(
            new HtmlWebpackPlugin({
              template: 'mytemplate.html',
              filename: `html/${page}.html`,
              chunks: [page]
            })
          )
        })
        ...
      }
    }
  }

以上是一个简化的示例,仅用于演示概念,有关完整的功能示例,请参见:https://gitlab.com/noor-projects/noor/tree/master/quasar-cli (检查此 commit 以了解为启用 MPA 支持而添加的内容)