Nginx vue 多单页 history路由模式 配置

Posted 叽叽喳喳,嘻嘻哈哈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx vue 多单页 history路由模式 配置相关的知识,希望对你有一定的参考价值。

webpack 部分相关配置

const path = require(‘path‘);
const VueLoaderPlugin = require(‘vue-loader/lib/plugin‘);
const htmlWebpackPlugin = require(‘html-webpack-plugin‘);
const VuetifyLoaderPlugin = require(‘vuetify-loader/lib/plugin‘);
const MiniCssExtractPlugin = require(‘mini-css-extract-plugin‘);
const { CleanWebpackPlugin } = require(‘clean-webpack-plugin‘);

module.exports = {
    mode: ‘development‘,
    entry: {
        admin: ‘srcDir/admin/index.ts‘,
        blogs: ‘srcDir/blogs/index.ts‘,
    },
    output: {
        // 通过 path + filename 指定打包输出位置 一
        // path: path.resolve(__dirname, ‘../dist/static/js‘),
        // filename: ‘[name]_[hash:8].js‘,
        // publicPath: ‘/static/js/‘,

        // 通过 path + filename 指定打包输出位置 二
        path: path.resolve(__dirname, ‘../dist/static/‘),
        filename: ‘js/[name]_[hash:8].js‘,
        publicPath: ‘/static/‘, // 这个要格外注意:输出到页面 <script src={ publicPath + filename }></script>
    },
    plugins: [
        new VueLoaderPlugin(),
        new CleanWebpackPlugin(),
        new HtmlWebpackPlugin({
            filename: ‘../admin.html‘, // 指定输出路径-相对路径,相对于(默认路径) output.path
            template: path.join(__dirname, ‘../src/assets/index.html‘),
            chunks: [‘admin‘],
            title: ‘admin‘,
        }),
        new HtmlWebpackPlugin({
            filename: path.join(__dirname, ‘../dist/blogs.html‘), // 指定输出路径-绝对路径,
            template: path.join(__dirname, ‘../src/assets/index.html‘),
            chunks: [‘blogs‘],
            title: ‘blogs‘,
        }),
    ],
};

nginx 配置

server {
    listen 8080;
    server_name  localhost 127.0.0.1;
    root  /home/an/poker-face/dist/;

    location  /admin/ {
        alias /home/an/poker-face/dist/;
        index  admin.html;
        try_files $uri $uri/  /admin/;
    }

    location /blogs { # 结尾加不加 / 都行,反正会重定向到 /blogs/;但是如果这里尾部加了/, 那么 alias 也必须以 / 结尾.
        alias /home/an/poker-face/dist;
        index blogs.html;
        try_files $uri $uri/ /blogs/;
    }
}

以上是关于Nginx vue 多单页 history路由模式 配置的主要内容,如果未能解决你的问题,请参考以下文章

vue路由history模式刷新404问题解决方案

Vue下路由History mode导致页面无法渲染的原因

vue项目history打包后部署在二级目录相关配置

nginx解决vue路由history模式刷新404问题

Nginx:vue路由使用history模式刷新404

Vue路由history模式踩坑记录:nginx配置解决404问题