2016-04-11 79 views
4

我正在構建使用Express on Node服務的Angular應用程序。使用Express服務角應用程序

我想要做的是當用戶訪問該網站時,將其語言環境追加到網址(domain.com/en-gb)。

然後,不管他們指定的語言環境如何,都會提供相同的index.html。

app.use('/', function(req, res) { 
    res.sendFile(__dirname + '/public/index.html'); 
}); 

我有工作如何服務了相同的文件,無論請求,但允許資產,如圖像的問題不被重新路由到index.html的呢?

感謝, 哈利

+0

確保你有一個後備,[有一些不尋常的語言環境](http://stackoverflow.com/a/319 1729/393219) –

回答

3

如果添加use聲明類似下面的一個,您爲您的圖片所在的位置:

var staticPathImages = __dirname + '/assets/images'; 
app.use(express.static(staticPathImages)); 

表現將直接服務於那些靜態的資產,但不重新路由到index.html ...

+0

我有這樣的設置: var staticPathImages = __dirname +'/ public/assets'; app.use(express.static(staticPathImages)); ('/',function(req,res){ res.sendFile(__ dirname +'/public/index.html'); }); 但它仍然爲每個文件提供index.html,任何想法我做錯了什麼? – harrynorthover

+0

答案是「是」... :-)你確定你是否要求'localhost:3000/public/assets/image.jpg'(或類似的),index.html文件被提供嗎?這聽起來很奇怪......我有一個類似於你的設置,它的工作原理很棒...... :-) – MarcoS

+0

你重啓了你的服務器嗎?也許它正在運行你的舊代碼 – krakig

2

MarcoS的回答是正確的,我只是添加更詳細的描述:

app.use(express.static(path.join(__dirname, 'public'))); //this line enables the static serving in the public directory 

public目錄可能是以下幾點:

public 
|_css 
|_js 
|_images 
    |_logo.png 

然後,如果你想獲得的圖像:

http://localhost:3000/images/logo.png 

如果你想顯示在您的html頁面:

<img id="logo" src="/images/logo.png"/> 
相關問題