找不到网页“/”路由

时间:2018-01-17 12:35:54

标签: node.js .htaccess vue.js vue-router nuxt.js

我正在尝试使用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]

这是我得到的错误屏幕:

enter image description here

页面本身目前非常基础,它确实有更多基础,但是我已经将其剪切到下面试图调试此问题:

<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>

1 个答案:

答案 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 等规则是必需的,因为它们在使用第二条规则时无法加载。