VueJs页面刷新时显示404 [英] VueJs page gives 404 on refresh
问题描述
我刚刚将博客应用上传到测试服务器,您可以参见此处.当我单击主页上的帖子时,我可以使用slug网址查看单个页面.但是,从单页开始,如果刷新页面,它将显示404页.
I just uploaded my blog app to a test server which you can see here. When I click on post from the homepage I am able to view the single page using the slug url. However, from the single page, If I refresh the page it gives me a 404 page.
我在用户组件中使用了以下内容:
I had used something like the below for my users component:
Route::get('/admin/users{vue_capture?}', function () {
return view('admin');
})->where('vue_capture','[\/\w\.-]*');
这是我的route.js的样子:
This is how my routes.js looks like:
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路线是这样的:
And my laravel routes are like this:
<?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');
但是我该如何处理单个帖子页面?
But how exactly can I handle for the single post page?
希望有人可以提供帮助
推荐答案
假设您的入口点是HomeController
的index
方法,
您只需要在routes/web.php
文件底部添加此路由即可.
Assuming your entry point is the index
method of your HomeController
,
you just need to add this route at the bottom of your routes/web.php
file.
Route::get('{any}', function () {
return view('homepage');
})->where('any','.*');
这篇关于VueJs页面刷新时显示404的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!