iis Vue 3 / Vite在路由时不尊重基本url,路由刷新产生404

fykwrbwg  于 2023-04-30  发布在  其他
关注(0)|答案(1)|浏览(177)

Vue 3.2.13,Vite 3。vite-plugin-rewrite-all 1.0.1
托管在IIS上
我最近将我正在开发的一个应用程序部署到IIS。我必须使用--base选项与我的建设,因为我的网站是一个应用程序在网站上。
我的基本URL是https://example.com/myApplicaitons/myApp/vueRoute
在初始加载时,我的url是https://example.com/myApplicaitons/myApp/vueRoute,但当使用路由链接导航时,我成功加载了我的组件,但url是https://example.com/vueRoute而不是https://example.com/myApplicaitons/myApp/vueRoute,当我刷新时,它产生了404。
我已经在使用路由器的历史模式,我甚至已经安装了重写所有节点模块,就像在类似的帖子中建议的那样。我也有一张网。配置im公用文件夹与www. example相同 www.example.com 。
我会附上我的邀请函config.js,router/index.ts和我的建筑脚本。
vite.config.js

// Plugins
import vue from "@vitejs/plugin-vue";
import pluginRewriteAll from "vite-plugin-rewrite-all";

// Utilities
import { defineConfig } from "vite";
import { fileURLToPath, URL } from "node:url";

// eslint-disable-next-line no-undef
const path = require("path");

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [vue(), pluginRewriteAll()],
  define: { "process.env": {} },
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url)),
      "~bootstrap": path.resolve(__dirname, "node_modules/bootstrap"),
    },
    extensions: [".js", ".json", ".jsx", ".mjs", ".ts", ".tsx", ".vue"],
  },
  server: {
    port: 3000,
  },
});

router/index.ts

// Composables
import { Component } from 'vue';
import ChildVue from '@/views/child/Child.vue';
import { createRouter, createWebHistory } from 'vue-router';

const routes = [
    {
        path: '/',
        component: HomeVue,
    },
    {
        path: '/MyRoute',
        children: [
            {
                path: '/Child',
                name: 'Child',
                component: ChildVue,
            },
        ],
    },
] as Route[];

const router = createRouter({
    history: createWebHistory(process.env.BASE_URL),
    routes,
});

export default router;

export interface Route {
    path: string;
    name?: string;
    component: Component;
}

构建脚本"build-dev": "vite build --mode dev --base=/myApplicaitons/myApp/"
TIA

ha5z0ras

ha5z0ras1#

这里的问题是process.env的使用:

createWebHistory(process.env.BASE_URL)

Vite使用import.meta.env暴露环境变量。上面的一行应该是:

createWebHistory(import.meta.env.BASE_URL)

相关问题