我正在使用nuxtjs
在开发模式下运行时,所有URL都可以正确工作,npm run build
并部署到Weblogic服务器后,我只能直接访问Webroot。
从那里导航到动态路线,只需单击即可。
但是,当我输入应该转换为动态路由的URL(不是Webroot)时,会得到404(但这在开发模式下有效)。
答案 0 :(得分:1)
这是因为generate命令忽略了动态路由。您需要手动配置动态路由生成。参见docs
答案 1 :(得分:0)
我针对此问题的解决方案是将动态路由转换为静态路由,并将params
参数移至query
。
在我的情况下,/product/_id.vue
更改为/product.vue
,对params: {id: product_id}
的引用更改为query: {id: product_id}
。
所有n-link
的路径都需要从:to="'/product/' + product_id"
更新为:to="'/product?id=' + product_id"
,我必须在product.vue页面组件中添加beforeRouteUpdate才能处理更改了查询,而不是页面。
答案 2 :(得分:0)
解决方案是使用路由器的hash
mode-那么您基本上只有一条路由,无论哪种情况,nuxt都可以处理。当然,它不是SEO友好的,但是由于您使用的是SPA模式,所以我认为这不是问题。
答案 3 :(得分:0)
您需要将fallback: true
添加到nuxt config生成参数(docs)。这会将丢失的页面重定向到404.html
,然后加载index.html
// nuxt.config.js
export default {
generate: {
fallback: true
}
}