我正在尝试使用Nuxt为服务器端渲染设置VueJS应用。但是,在部署到我的服务器之后,index.vue将返回404 Page not not found错误。
在我的开发机器上运行时不会发生这种情况,即使在我的服务器上以开发模式运行也会发生这种情况。
所有其他路线都有效,从应用程序内部到达索引路径本身也可以正常工作。它只是在刷新时不加载。例如:
http://myapp.com/
不起作用
http://myapp.com/login
工作正常
我的网页文件夹目前如下所示:
- pages
-- index.vue
-- login.vue
我的nuxt.config文件中没有任何花哨的设置,并且具有与Auth0 example
中描述的几乎相同的设置在我的服务器上,我使用命令pm2 start npm --name "my-app" -- start
运行nuxt,运行正常,没有任何错误,我有以下.htaccess配置:
RewriteCond %{HTTP_HOST} ^my-app\.com$ [OR]
RewriteRule ^(.*) "http\:\/\/127\.0\.0\.1\:3000\/$1" [P,L]
这是我得到的错误屏幕:
页面本身目前非常基础,它确实有更多基础,但是我已经将其剪切到下面试图调试此问题:
<template>
<v-container grid-list-md>
<v-layout row wrap>
<h1>Test index, trying to fix the 404</h1>
<h2>Hello, {{ loggedUser ? loggedUser : 'friend' }}!</h2>
</v-layout>
</v-container>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
computed: mapGetters([
'isAuthenticated',
'loggedUser'
])
}
</script>
答案 0 :(得分:0)
我似乎设法解决了这个问题。但是,我并不完全确定修复程序涉及修改我的.htaccess
。我开始玩设置并最终得到以下效果很好(至少目前为止)。
RewriteCond %{HTTP_HOST} ^my-app\.com$
RewriteRule "(.*\.(jpg|gif|png|svg|js|css))$" "http://127.0.0.1:3000/$1" [P,NC]
RewriteRule ^(.*) "http\:\/\/127\.0\.0\.1\:3000\/$2" [P,L]
jpg | gif 等规则是必需的,因为它们在使用第二条规则时无法加载。