1
我正在嘗試使用Laravel和Vue創建SPA網站。我也想做本地化。但本地化構建只是使用沒有Vue的laravel。如果我用正則表達式除去#在URL(blog.com/#/)這樣web.php
:如何使用正則表達式在本地化Laravel 5.4與Vue JS
Route::group(['middleware' => 'locale'], function() {
Route::get('/{vue?}', function() {
return view('main');
})->where('vue', '[\/\w\.-]*');
});
Route::get('lang/{locale}', function($locale) {
Session::put('locale', $locale);
return back();
});
它的工作..但不幸的是這打破了我的本地化網址:
<li><a href="{{url('lang/id')}}"><img src="{{asset('images/flag/id.png')}}"></a></li>
<li><a href="{{url('lang/en')}}"><img src="{{asset('images/flag/en.png')}}"></a></li>
但是,如果我
Route::get('/{vue?}', function() {
return view('main');
});
:從路線
Route::get('/{vue?}', function() {
return view('main');
})->where('vue', '[\/\w\.-]*');
變成這個樣子,其中刪除0
它的工作的定位,但它不適用於某些URL的工作,如: http://blog.com/post/create
,但如果我更改URL,以http://blog.com/create,它的工作..
URL測試:
工作:
- blog.com
- blog.com/about
- blog.com/create
不工作
- blog.com/posts/create
這是VUE路線routes.js
import VueRouter from 'vue-router'
let routes = [
{
path: '/',
component: require('./pages/Home')
},
{
path: '/about',
component: require('./pages/About')
},
{
path: '/posts/create',
component: require('./posts/create')
}
]
export default new VueRouter({
routes,
linkActiveClass: 'is-active',
mode: 'history'
})
如果你把'path:'/ create'',離開'component:require('./posts/create')',那該怎麼辦? –
您的建議確實有效。但我只是想讓網址變成這樣:blog.com/posts/create。如果我從路由中移除它(blog.com/posts/create)不起作用。如果我可以選擇,我只是想使用正則表達式來使url {{url('lang/id')}}'爲本地化工作。 – Ayuktia
我不確定你的意思是「沒有工作」(我真的不知道它做了什麼),所以也許詳細說明一下。 –