2016-08-25 48 views
0

我用快遞生成器來創建一個項目,它會自動包含app.js公用文件夾...如何使用Docker在Node Express容器中提供靜態內容?

我想顯示我的index.ejs的圖像,但它是不工作... 什麼將是正確的網址使用?

網上通緝後,它說,src應該在這個IMG SRC =「本地主機:8000 /圖片/ 1.png」

不過,我使用的碼頭工人的工具箱,所以我使用的泊塢窗快速啓動終端,我得到它通過使用碼頭工作ip

所以它像img src =「127.432.343:8000/images/1.png」 但IP是特定於我的電腦我想我的同事能夠看到圖像,而不必重構代碼...

我的容器的名稱是網絡,所以我也試過我試過src =「web:8000/images/1 .png「

但這不起作用,我覺得它應該雖然,任何提示,請嘗試在這裏幾個小時。

此外,如果這是要在服務器上進行生產,那麼最好的方法是什麼?如果我最終上傳到AWS,我不想更改代碼...

+0

你能發佈「docker ps」的輸出嗎? – TopperH

回答

0

express中的靜態內容必須位於/ public文件夾中。公共/圖像文件夾下的圖像。如果您的圖片位於該文件夾中,則應該可以從您所說的網址訪問它。

要從EJS文件顯示它,你只需要指向圖片/ 1.png(使用相對路徑):

<img src="images/i.png" /> 

這樣一來,你不會有任何麻煩,它上傳到任何生產服務器。

對於網絡中的其他計算機來測試您的項目,您需要檢查計算機的本地網絡ip(ipconfig/ifconfig)並使用ip地址端口8000進行測試。並非每個內部網絡都配置了DNS的完全配置。

還檢查您的計算機的防火牆,以允許通過端口8000的TCP通信。希望它有幫助。

+0

我試過images/1.png並沒有用:/是否因爲它在Docker中並且快速運行?基本上它在虛擬機上運行,​​我的終端被連接到 – Lukeout

+0

哦!使用虛擬機時,您應該將虛擬機配置爲使用橋接網絡。默認情況下,他們使用NAT適配器。 – adonike

0

有沒有可能切換到Docker for Mac?這將允許你在本地主機上看到它