[Bug] 在特定配置下重定向失效 #3881
-
Checklist
Package namevuepress-plugin-redirect Which operating system are you using?
Describe the bug如后文所述的项目结构,在使用 在本地 项目结构如下 Mode Length Hierarchy
---- ------ ---------
d---- 204.20 KB redirect-bug
-a--- 1.04 KB ├── package.json
-a--- 203.13 KB ├── pnpm-lock.yaml
-a--- 29.00 B ├── tree.txt
d---- 0.00 B └── docs
-a--- 0.00 B ├── A.md
d---- 1.42 KB ├── zh
-a--- 1.42 KB │ └── README.md
d---- 18.00 B ├── other
-a--- 18.00 B │ └── README.md
d---- 688.00 B ├── en
-a--- 688.00 B │ └── README.md
d---- 1.75 KB └── .vuepress
-a--- 818.00 B ├── config.ts
-a--- 971.00 B ├── theme.ts
d---- 557.00 B └── locales
-a--- 248.00 B ├── en.ts
-a--- 67.00 B ├── index.ts
-a--- 242.00 B └── zh.ts
import { defineUserConfig } from "vuepress";
import { redirectPlugin } from "vuepress-plugin-redirect";
import { theme } from "./theme";
import viteBundler from "@vuepress/bundler-vite";
export default defineUserConfig({
bundler: viteBundler(),
locales: {
'/zh/': {
lang: 'zh-CN',
title: '测试测试测试',
description: '测试测试测试'
},
'/en/': {
lang: 'en-US',
title: 'Lorem ipsum dolor sit amet',
description: 'Lorem ipsum dolor sit amet'
}
},
base: '/Test/',
dest: 'public',
plugins: [
redirectPlugin({
autoLocale: true,
defaultBehavior: "homepage",
})
],
theme
}); 我认为和这两个 Mode Length Hierarchy
---- ------ ---------
d---- 204.20 KB redirect-bug
d---- 18.00 B ├── other
-a--- 18.00 B │ └── README.md
-a--- 0.00 B ├── A.md 不在任何语言下内容的有关系,移除掉就正常了 另外,我尝试将 ---
redirectFrom: /A.md
--- 和 ---
redirectFrom: A.md
--- 都无法重定向 于是我尝试建立了一个 ---
redirectTo: /zh/A.md
--- 会重定向到 如果写成 ---
redirectTo: zh/A.md
--- 那么如果使用在 这一部分(横线分隔的)现象在github pages, Additional contextNo response |
Beta Was this translation helpful? Give feedback.
Replies: 20 comments 2 replies
-
I believe the redirectTo issue is fixed, you are reporting multiple issues at same time and that confused me, can you open new pr with what you do, what's expected and what happening about the rest? |
Beta Was this translation helpful? Give feedback.
-
更新:如果你使用了autoLocale,而你的项目中存在不属于任何一个语言的页面的时候,报错是预期的,因为插件根本不清楚要做什么。 |
Beta Was this translation helpful? Give feedback.
-
简单来说这是 但是在 那么 #3878 应该就是预期不工作的。(那么为啥 我尝试一下做个这个redirectFrom的问题的最小重现 |
Beta Was this translation helpful? Give feedback.
-
我还是没太看懂你表达了什么,你关闭的那个议题,你给出的结构和你底下说的对不上。 输出构建结果的时候,插件只会根据已有的界面来生成能够自动重定向的界面,也就是说如果你想要让 /a 能实现重定向,你需要在至少一个语言下有 a.md,否则压根就不会有这个界面,应该会默认走到服务器404的逻辑。 |
Beta Was this translation helpful? Give feedback.
-
redirectForm 的底层工作原理是插件会便利所有的数据把它们集中起来并推断出原始的重定向界面,并把那些重定向界面创建出来。 autoLocate也是一样的,插件会收集所有语言中存在过的所有路径,并在根目录自动生成他们同时提供自动从定向到一个最贴近用户语言的功能。 Redirect to的工作逻辑是直接在当前界面写一个script的标签,这个script的标签会进行跳转。 |
Beta Was this translation helpful? Give feedback.
-
Reirectto不工作的原因是因为我忘了去掉pathname 最开始的斜杠了,这个问题很简单,你汇报的也很清晰,但是其他的部分我都没有听懂原因在哪里。 实际上因为插件写的比较久了,我现在也不是很确定,如果说你强行要在启用了自动语言重定向的功能时,添加一些不属于任何语言的界面,会发生什么事情,我认为那些页面会保留,也不会被重定向,也不应该涉及到报错。如果你添加了这些界面之后,整个自动语言程序性功能都不工作了,那可能应该算是一个bug,你可以给一个最小复现,或者说你在action里给出一个明确的文件结构,然后给出一系列步骤,我自己去复现。 |
Beta Was this translation helpful? Give feedback.
-
制作了一个最小重现 需要实现的目标是访问 有 按我的理解 |
Beta Was this translation helpful? Give feedback.
-
针对这个我做了另一个最小复现 在这个复现里 需要注意的是 pnpm docs:dev 提供的页面, 但是 pnpm docs:build --dest Test
pnpm serve 这样访问 |
Beta Was this translation helpful? Give feedback.
-
输出结果我测试是没有问题的: 小写 base: 大写 base: Vite 开发服务器配合 chrome 我是测出了一些问题的,在原选项卡单纯的修改大小写似乎实际访问的地址是不变的。 每次开一个新标签卡访问,并不使用任何自动补全是完全正常的。 代码实现里插件选项的 config 和 frontmatter 的 redirectFrom 会合并到一个 redirectMap 处理,也就是上方的 log,所以 config 应该也正常。 |
Beta Was this translation helpful? Give feedback.
-
另一个案例测试也是正常的,你最好确定你在汇报什么 0.3s 内自动从 /Test/ 重定向到 /Test/en/ (Linux 我的环境是英文的) |
Beta Was this translation helpful? Give feedback.
-
这是minrep.zip的现象 |
Beta Was this translation helpful? Give feedback.
-
这是minrep_autolocale.zip的现象 |
Beta Was this translation helpful? Give feedback.
-
新建一个窗口,把 |
Beta Was this translation helpful? Give feedback.
-
关于使用主题,根目录不能重定向的问题,很有可能是 auto-catalog 为你自动生成了页面。 建议配置 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
我这边在 linux 完全复现不了,而且我是用默认主题测得,建议先切回默认主题测一下确定不是主题的问题,然后把你的路径改成全小写再测测,如果确定跟这两个无关的话,等新版发布之后再给我打个压缩包? |
Beta Was this translation helpful? Give feedback.
-
测了一下似乎有这个问题,但我没验证上面的配置能不能修(99% 大概行)。插件的部分冲突需要你自行解决,因为主页不存在时自动生成一个目录页也是合理的。 |
Beta Was this translation helpful? Give feedback.
-
43ac200 这个 commit 你 patch 进去之后就不应该出现 // 的路径了 目前因为一个比较大的 PR: #3879 我暂时发不了版。 |
Beta Was this translation helpful? Give feedback.
-
确实行了👍
默认主题的测试我明天再做,尽力配合你的需要 |
Beta Was this translation helpful? Give feedback.
-
minrep_al2.zip 又进一步试了试,使用了全小写路径,配置 |
Beta Was this translation helpful? Give feedback.
1,2 应该在 c11fe5e 中修复。 3 是正常的,因为开发服务器载入不存在的路径会自动 404