laravel - VueJs页面刷新时显示404

标签 laravel vuejs2

我刚刚将我的博客应用程序上载到了可以see here的测试服务器上。当我单击主页上的帖子时,我可以使用slug url查看单个页面。但是,从单页开始,如果刷新页面,它将显示404页。

我为用户组件使用了以下内容:

Route::get('/admin/users{vue_capture?}', function () {
    return view('admin');
})->where('vue_capture','[\/\w\.-]*');

这是我的route.js的样子:
import VueRouter from 'vue-router';
import Admin from './components/Admin.vue';
import Homepage from './components/Homepage.vue';
import Subscriber from './components/subscriber/Main.vue';
import Single from './components/Single.vue';
import Categories from './components/Categories.vue';

let routes = [
    {
        path: '/',
        component: Homepage
    },
    {
        path: '/subscriber',
        component: Subscriber
    },
    {
        path: '/post/:slug',
        name: 'post',    
        component: Single
    },
    {
        path: '/categories/:slug',
        component: Categories
    }
];

export default new VueRouter({
    mode: 'history',
    routes
});

我的laravel路线是这样的:
<?php
use App\User;
use App\Http\Resources\User as UserResource;
use App\Http\Resources\UserCollection;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
    return view('homepage');
});

Auth::routes();
Route::get('/logout', 'Auth\LoginController@logout')->name('logout' );
Route::get('/home', 'HomeController@index')->name('home');

/************************************************************
                            API'S
************************************************************/
Route::get('/api/homeposts', 'HomePostsController@posts')->name('homeposts');
Route::resource('/api/users', 'AdminUsersController');
Route::resource('/api/posts', 'AdminPostsController');
Route::resource('/api/categories', 'AdminCategories');
Route::get('/api/loggedUser', 'AdminUsersController@loggUser')->name('singleUser');
Route::put('/api/updatedUser/{id}', 'AdminUsersController@updateUser')->name('singleUserUpdate');

Route::resource('/api/subscriber', 'SubscriberController');
/*Route::get('/admin/users{vue_capture?}', function () {
    return view('admin');
})->where('vue_capture','[\/\w\.-]*');*/

/************************************************************
                        ADMIN ROUTES
************************************************************/
Route::group(['middleware'=>'admin'], function(){
    Route::get('/admin/users', 'AdminUsersController@users')->name('allusers');
    Route::resource('/admin/posts', 'AdminPostsController');
});

/************************************************************
                    SUBSCRIBER ROUTE
************************************************************/
Route::group(['middleware'=>'subscriber'], function(){
    Route::get('/subscriber/{vue_capture?}', function () {
        return view('homepage');
    })->where('vue_capture','[\/\w\.-]*');
});

/**********************************************************/

Route::get('/single/post/{slug}', 'AdminPostsController@single');

但是,对于单个帖子页面,我该如何处理呢?

希望有人能帮忙

最佳答案

假设您的入口点是indexHomeController方法,
您只需要在routes/web.php文件的底部添加此路由即可。

Route::get('{any}', function () {
    return view('homepage');
})->where('any','.*');

关于laravel - VueJs页面刷新时显示404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51399802/

相关文章:

javascript - 在 v-for 列表项中显示和隐藏 div (Vue.js 2)

javascript - 根据复选框隐藏/显示表行

Laravel 和 VueJS : Calling a VueJS Method Inside Blade

php - Elasticsearch中的条件查询

mysql - Laravel 多个 WHERE() 运算符优先级

javascript - 传递将在子组件中的样式中使用的 Prop - Vue

vue.js - `render` 函数没有替换插槽内容

javascript - v-if 有两个条件

laravel 5.5 缓存错误 "Serialization of ' 不允许关闭”

php - Laravel:将任意 URL 解析为其相应的 Controller /路由?