我从vue路由器文档中读到以下说明
注意 :使用历史logging模式时,需要正确configuration服务器,以便直接访问站点深层链接的用户不会得到404。
所以,我尝试像下面这样configuration我的nginx
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /var/www/laravel/public/; index index.php index.html index.htm; server_name working.dev; location /user { rewrite ^(.+)$ /index.php last; } location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { try_files $uri /index.php =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
以下是我的Vueconfiguration
var router = new VueRouter({ hashbang: false, history: true, linkActiveClass: "active", root: '/user' });
但是,当用户直接访问我的网站的深层链接时,我仍然有404。
编辑 :我也使用Laravel路由。 以下是我的laravel路由。
Route::get('user', function() { return View::make('user.index'); });
我只是读了mattstauffer的博客文章 ,终于在Laravel的路线上找到了办法。 如下所示
Route::get('user/{vue_capture?}', function() { return View::make('user.index'); })->where('vue_capture', '[\/\w\.-]*');
当用户直接访问到站点的深层链接时,它不会返回404。