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
1条答案
按热度按时间ha5z0ras1#
这里的问题是
process.env
的使用:Vite使用import.meta.env暴露环境变量。上面的一行应该是: