基本オプションの documentation のように:
アプリのベースURL。たとえば、単一ページのアプリケーション全体が/ app /の下で提供される場合、baseは値 "/ app /"を使用する必要があります。
しかし、私は次のように試してみましたが、うまくいかないようです:
const router = new VueRouter({
base: "/app/",
routes
})
デモ フィドル 。
ベースのデフォルト値は'/'
です。ルーティングの使用方法から類推:
<router-link to="home">Home</router-link>
または
<router-link :to="{ path: '/abc'}" replace></router-link>
/app
と works を省略しました。ベースはrouter-link
の一部である必要はありません
[〜#〜]編集[〜#〜]
vue-router
でのbase
の使用(このテストでは、webpack
テンプレートでvue-cli
を使用しました。)
私は私のようなルーター構成を持っていました:
export default new Router({
base: '/app',
mode: 'history',
routes: [
{
path: '/',
name: 'RangeInputDemo',
component: ComponentDemo
}
]
})
ベースを'/app'
として追加しても、ベースが'/'
に設定されているかのように、プロジェクト全体で発生したルーティングに違いはありませんでした。
サーバー側からURLを変更しようとしました(プロジェクトが提供されているURL)。
したがって、dev-server.js
では、次のようになります。
var uri = 'http://localhost:' + port
アプリのURLを制御するため、次のように少し変更しました。
var uri = 'http://localhost:' + port + '/app'
これにより、アプリケーションは次のように表示されました。
vueコンソール(2番目の画像))でfullPath
が'/'
であることに注意してください。
念のため、もう一度base
を'/'
に変更しました。
したがって、base
構成のrouter
プロパティは、サーバーが'/'
以外のルートでアプリケーションにサービスを提供する場合、base
を使用すると、設定したURLからアプリケーションを実行できます。
質問ではルートを/app
の下に移動する必要があるため、サーバーがサービスを提供するルートを変更することを想定していない場合、親ルートとして/app
を使用することが解決策になると思います。
同じ問題があり、「ベース」の設定が機能しませんでした-回避策は、ルーターのベースURLを更新することです。
{ name: 'listings', path: baseUrl + '/listings', component: PageListings}
名前でルートを参照します。
<router-link :to="{ name: 'listings' }" exact>Listings</router-link>