0
我開發使用哈皮服務器REST調用和多頁Angular2網站客戶端的Web應用程序。
哈皮爲所有Angular2文件到客戶端:
let serverDirPath = path.resolve(__dirname);
server.route({
method: "GET",
path: "/{param*}",
config: {
auth: false,
handler: {
directory: {
path: path.join(serverDirPath, "../client"),
index: true
}
}
}
});
調用服務器根成功返回「的index.html」,之後的Angular2網站完美的作品!對Hapi定義的路線的所有呼叫也能正常工作。
問題
但是,如果我執行一個GET任何Angular2定義的路徑(例如到達頁「/用戶」),哈皮找不到路線和返回錯誤404這是可能是因爲該路線未在Hapi服務器上定義。請注意,如果我從「index.html」頁面導航到「/ users」路線,那麼路線完美無缺!
問題
我怎樣才能達到 「/用戶」 有直接的GET調用頁面?如果可能的話,我想將所有呼叫都轉接到相應的Angular2路由(如果存在的話)。
預先感謝您!
編輯:解
我解決它!在app.module.ts,在供應商的聲明,我加了這一點:
{
// Strategy to serve pages with /#/{path}. It's required to resolve Angular2 routes when using hapi.
provide: LocationStrategy,
useClass: HashLocationStrategy
},
所有Angular2 URL必須通過/#/(例如本地主機/#/家),這對我的偉大工程之前。