Nuxt.js SSR和Static301重定向一个特定生成的路由



我有一个使用express的nuxt.js应用程序,该应用程序301重定向并添加斜杠。所有其他路由(生成或未生成(都不执行此操作。我需要让它这样没有路线重定向。一旦SPA接管,路由器就不会这样做。

如果重要,请选择路线/units/(导航到/units时(。这只发生在初始页面加载时。

请注意,没有trailingSlash选项或类似的选项,因此使用默认值(未定义(。我已经尝试过这种配置,但我不希望路由没有斜杠到404。

另一件需要注意的事情是,在netlify上静态托管会删除重定向。我意识到这是因为服务器配置。然而,我的目标也是从开发环境中删除重定向(例如,运行nuxt(。

在这一点上,即使是一条去哪里看的线索也会非常有帮助!

以下是缩写的nuxt config:

{
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" }
],

您是否尝试在nuxt配置中添加以下内容以及重定向规则:

router: {
trailingSlash: true
}

相关内容

最新更新