2
我有一个Laravel 5.3项目利用Vue路由器。我在模板(home.blade.php)中使用<router-view></router-view>
标签。Vue路由器没有加载URL输入到浏览器
我遇到的唯一问题是我似乎无法通过在路由器中输入URL来获取视图。只有在我的刀片文件中使用router-link
才有效。
这里是我的主JS文件,其中我实现了路由器:
import Vue from 'vue'
import VueRouter from 'vue-router'
Vue.use(VueRouter);
Vue.use(require('vue-resource'));
Vue.http.headers.common['X-CSRF-TOKEN'] = $('meta[name="csrf-token"]').attr('content');
Vue.component(
'passport-clients',
require('./components/passport/Clients.vue')
);
Vue.component(
'passport-authorized-clients',
require('./components/passport/AuthorizedClients.vue')
);
Vue.component(
'passport-personal-access-tokens',
require('./components/passport/PersonalAccessTokens.vue')
);
const routes = [
{ path: '/view1', component: require('./components/view1.vue')},
{ path: '/view2', component: require('./components/view2.vue')},
{ path: '/view3', component: require('./components/view3.vue')}
]
const router = new VueRouter({
routes: routes,
})
const app = new Vue({
router
}).$mount('#app')
我web.php文件:
<?php
/*
|--------------------------------------------------------------------------
| 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!
|
*/
//All the authentication routes
Auth::routes();
//Only routing needed for Laravel
Route::get('/{catchall?}', ['as' => 'start', 'middleware' => 'auth', function() {
return view('home');
}])->where('catchall', '.*');
任何想法,为什么可以这样做呢?
这似乎工作,但只有当我这样做时:#/ url-here – mdobrenko
有方法来删除散列,但您需要在您的服务器配置https://router.vuejs进行一些更改。 org/en/essentials/history-mode.html –
我找到了一个好的IIS配置:(web.config)https://gist.github.com/mkelley82/19d2e0464e5375b19c4cb1f39e9624ef – Reinhard