我有一个使用 express 的 nuxt.js 应用程序,即 301 重定向添加斜杠。所有其他路由(生成与否)都不会这样做。我需要做到这一点,所以没有路由重定向。一旦 SPA 接管,路由器就不会这样做。
如果重要,路线 /units/
(导航到 /units
时)。这仅在初始页面加载时发生。
请注意,没有 trailingSlash 选项或类似的选项,因此使用默认值(未定义)。我已经尝试过这种配置,但我不想要没有 404 斜线的路由。
另一件需要注意的事情,在 netlify 上静态托管会删除重定向。我意识到这是因为服务器配置。但是,我的目标也是从开发环境中删除重定向(例如,运行 nuxt
)。
在这一点上,即使是寻找去处的线索也会非常有帮助!
这是缩写的nuxt配置:
{
dir: {
pages: "pages"
},
generate: {
routes: async () => {
// logic to create routes
},
exclude: []
},
ignore: [
// ignored pages
],
server: {
port: process.env.NUXT_PORT || 4000,
host: process.env.NUXT_HOST || "localhost"
},
env: {
// env vars
},
ssr: true,
head: {
// ...
script: [
{
src: `https://polyfill.io/v3/polyfill.min.js?unknown=polyfill&features=${ features }`,
async: true,
crossorigin: "anonymous",
body: true
}
]
},
css: [
// ...
],
plugins: [
// ...
],
buildModules: [
"@nuxtjs/dotenv"
],
modules: [
"@nuxtjs/axios",
["vue-wait/nuxt", { useVuex: true }],
"@nuxtjs/sitemap"
],
axios: {},
serverMiddleware: [],
build: {
babel: {
babelrc: false
},
corejs: 3,
shouldPreload: (file, type) => {
return ["script", "style", "font"].includes(type)
},
extend(config, ctx) {
// ...
config.node = {
fs: "empty",
tls: "empty"
}
// ...
},
transpile: [
// ...
]
},
hooks: {
nuxt: {
ready(nuxt) {
logger.debug(`nuxt:ready`)
}
},
generate: {
before(generator, generateOptions) {
logger.debug(`generate:before`)
}
},
render: {
resourcesLoaded(resources) {
logger.debug(`render:resourcesLoaded`)
},
route(url, result, { params }) {
logger.debug(`render:route ${ url }`)
// actual promise returned not relevant
return Promise.resolve()
}
},
build: {
before(nuxt, buildOptions) {
logger.debug(`build:before`)
// actual promise returned not relevant
return Promise.resolve()
}
}
}
}
编辑:
如果我按照以下规则尝试使用 @nuxt/redirect-module
,我会得到无限重定向。
redirect: [
{ from: "^/units/$", to: "/units" }
],
答案 0 :(得分:0)
您是否尝试在 nuxt 配置中添加以下内容以及重定向规则:
router: {
trailingSlash: true
}