Ich versuche, eine SPA-Website mit Laravel und Vue zu erstellen. Ich möchte auch lokalisieren. Aber Lokalisierungs-Builds verwenden nur Laravel ohne Vue. Wenn ich Regex verwendet habe, um # in der URL (blog.com/#/) wie folgt zu entfernen web.php
:
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();
});
es hat funktioniert.. aber leider hat dies meine Lokalisierungs-URL gebrochen:
<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>
Aber wenn ich wo von dieser Route gelöscht habe
Route::get('/{vue?}', function() {
return view('main');
})->where('vue', '[\/\w\.-]*');
Werde so:
Route::get('/{vue?}', function() {
return view('main');
});
Es hat für die Lokalisierung funktioniert, aber es funktioniert nicht für einige URLs, zB: http://blog.com/post/create
aber wenn ich die URL in http://blog.com/create ändere , hat es funktioniert.
URL-Test:
Arbeiten:
funktioniert nicht
Dies sind die Vue-Routen 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'
})
Es löst sich jetzt. Ich benutze nur diesen Code, um dieses Problem zu lösen.
if ( ! request()->ajax() ) {
Route::group(['prefix' => 'posts'], function () {
Route::get('/{vue?}', function() {
return view('main');
})->where('vue', '[\/\w\.-]*');
});
}
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen