2015-07-28 84 views
0

我已經建立了與node.js角度的html5模式,但對於不支持html5模式的瀏覽器,回退到哈希不起作用。角度html5模式回退深層路線不起作用

服務器的路由來捕獲所有:

app.all('/*', function(req, res) { 
    console.log('serve'); 
    res.sendFile(__dirname+'/public/index.html'); 
}); 

我已經包括了開幕頭標記之後的一個基本標記。

<base href="/"> 

現在,當我訪問喜歡的「localhost /新聞」

對於在同一個URL支持的瀏覽器的網站負載,服務器被擊中一次,登錄「服務」的URL,對於非支持的瀏覽器它將url更改爲localhost /#/ news,這非常棒。

現在對於像localhost/news/post1這樣的網址,支持瀏覽器再次正常工作,但不支持的瀏覽器加載index.html文件,沒有樣式或JS,並且服務器被多次點擊,日誌記錄服務超過50 +次,網址未被修改,頁面仍然被破壞。

我正在測試的瀏覽器是IE9,有沒有人知道這個解決方案?

+0

什麼路由器? IE9的深層網址是什麼樣的?當這種情況發生時,url對於像js和css這樣的資產看起來如何? – charlietfl

+0

網址保持不變,所以如果我在localhost/news/post-1上點擊該網站,它根本不會改變 - 並且UI-router – wazzaday

+0

使用具有或不具有協議/域的資源的絕對路徑可以解決資產問題。不知道你正在使用什麼路由器或版本 – charlietfl

回答

0

您是否嘗試過使用Express在您的節點服務器中靜態設置路由?對於你的路由,在你的server.js中,它看起來像這樣:

app.use('/news', express.static(__dirname + '/public'));