子文件夹中的 Vue CLI 3 SPA,根目录中的静态 HTML 页面
Vue CLI 3 SPA in Subfolder, Static HTML Pages in Root
如何使用 Vue CLI 3 创建一个项目,该项目在 public 目录的根目录下包含一些静态 html 文件,并在应用程序文件夹中包含一个 SPA?
我想要几个静态 html 文件,包括项目根目录下的 index.html。我希望这些静态 HTML 文件在 SPA 之外提供以用于 SEO 目的。
现在,我的项目结构如下所示:
.
├── README.md
├── babel.config.js
├── package.json
├── public
│ ├── app
│ │ └── index.html
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ └── HelloWorld.vue
│ └── main.js
├── vue.config.js
└── yarn.lock
我尝试了很多不同的 publicPath and indexPath values in my vue.config.js 文件组合。 None 已经达到了我的期望。我希望 yarn serve 在本地为静态 HTML 文件和 SPA 提供服务以进行开发。更重要的是,当我 运行 yarn build 时,我希望将静态 HTML 文件和 SPA 正确地捆绑到 dist 文件夹中。这两个目标我都没能实现。
使用下面的配置,public/index.html 文件本来是静态的,只显示在 / 上,http://localhost:8080/ and http://localhost:8080/app/. Interestingly, at http://localhost:8080/app/ js 资源被注入响应以及静态的内容 HTML.
使用下面的配置 运行ning yarn build 之后,我剩下一个 /dist/app/index.html 文件,其中包含静态index.html 没有注入 javascript 的文件代码,而不是注入了 javascript 的 SPA 代码。 /dist/index.html 文件具有我期望的静态 HTML,但注入了用于 SPA 的所有 javascript。
// vue.config.js
module.exports = {
publicPath: '/app/',
indexPath: 'index.html'
}
如何配置此项目以支持项目根目录中的静态 html 文件和应用程序文件夹中的 SPA?
您可以利用 Vue CLI 的功能 build multipage apps 而实际上只有一个页面...
// vue.config.js
module.exports = {
pages: {
index: {
// entry for the page
entry: "src/main.js",
// the source template
template: "public/app/index.html",
// output as dist/app/index.html
filename: "app/index.html",
// when using title option,
// template title tag needs to be <title><%= htmlWebpackPlugin.options.title %></title>
title: "App Index Page",
// chunks to include on this page, by default includes
// extracted common chunks and vendor chunks.
chunks: ["chunk-vendors", "chunk-common", "index"]
}
}
};
如何使用 Vue CLI 3 创建一个项目,该项目在 public 目录的根目录下包含一些静态 html 文件,并在应用程序文件夹中包含一个 SPA?
我想要几个静态 html 文件,包括项目根目录下的 index.html。我希望这些静态 HTML 文件在 SPA 之外提供以用于 SEO 目的。
现在,我的项目结构如下所示:
.
├── README.md
├── babel.config.js
├── package.json
├── public
│ ├── app
│ │ └── index.html
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── App.vue
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ └── HelloWorld.vue
│ └── main.js
├── vue.config.js
└── yarn.lock
我尝试了很多不同的 publicPath and indexPath values in my vue.config.js 文件组合。 None 已经达到了我的期望。我希望 yarn serve 在本地为静态 HTML 文件和 SPA 提供服务以进行开发。更重要的是,当我 运行 yarn build 时,我希望将静态 HTML 文件和 SPA 正确地捆绑到 dist 文件夹中。这两个目标我都没能实现。
使用下面的配置,public/index.html 文件本来是静态的,只显示在 / 上,http://localhost:8080/ and http://localhost:8080/app/. Interestingly, at http://localhost:8080/app/ js 资源被注入响应以及静态的内容 HTML.
使用下面的配置 运行ning yarn build 之后,我剩下一个 /dist/app/index.html 文件,其中包含静态index.html 没有注入 javascript 的文件代码,而不是注入了 javascript 的 SPA 代码。 /dist/index.html 文件具有我期望的静态 HTML,但注入了用于 SPA 的所有 javascript。
// vue.config.js
module.exports = {
publicPath: '/app/',
indexPath: 'index.html'
}
如何配置此项目以支持项目根目录中的静态 html 文件和应用程序文件夹中的 SPA?
您可以利用 Vue CLI 的功能 build multipage apps 而实际上只有一个页面...
// vue.config.js
module.exports = {
pages: {
index: {
// entry for the page
entry: "src/main.js",
// the source template
template: "public/app/index.html",
// output as dist/app/index.html
filename: "app/index.html",
// when using title option,
// template title tag needs to be <title><%= htmlWebpackPlugin.options.title %></title>
title: "App Index Page",
// chunks to include on this page, by default includes
// extracted common chunks and vendor chunks.
chunks: ["chunk-vendors", "chunk-common", "index"]
}
}
};