亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

image src 屬性不顯示本地存儲的圖像

image src 屬性不顯示本地存儲的圖像

至尊寶的傳說 2023-10-10 14:51:16
我將圖像作為 png 文件存儲在本地服務器上,并且僅將文件名保存到數據庫中。當向客戶端渲染圖像時,我將圖像的相對路徑與數據庫中的文件名結合起來,如下所示:<img src='../../public/avatar-pictures/3fVZNShyQRAtBbipvzVrDwDD.png'/>但這不起作用。作為絕望中的最后一次嘗試,我什至將 png 文件本身移動到客戶端腳本的根目錄,但它仍然沒有產生任何結果。是什么導致了這個問題?
查看完整描述

1 回答

?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

默認情況下,node.js 和 Express 不提供任何文件。因此,您不能為瀏覽器提供服務器硬盤上某個位置的路徑并期望 Web 服務器發送文件。它并沒有這樣做(與熟悉 Apache 的人可能期望的不同)。

您的服務器上需要有一條指向公共目錄的路由。有多種方法可以做到這一點,但這是一種:

<img src='/public/avatar-pictures/3fVZNShyQRAtBbipvzVrDwDD.png'/>

然后,在您的服務器上,您將使用express.static()中間件創建一個路由,該路由查找以以下開頭的 URL /public,并將提供硬盤驅動器上與 URL 路徑匹配的公共目錄中的文件:

app.use("/public", express.static("../../public"));

您傳遞到的路徑express.static()需要指向本地硬盤上的公共目錄。您沒有透露您的本地文件結構,因此我無法確切地告訴您它應該是什么。上面的示例將相對于程序啟動時的當前工作目錄。從模塊目錄中自己構建路徑可能更常見。因此,如果該public目錄比模塊目錄高兩級,您可以這樣做:

app.use("/public", express.static(path.join(__dirname, "../../public")));

然后,它會更具體地與模塊的目錄相關,而不依賴于當前工作目錄,當前工作目錄可以通過代碼或程序的啟動方式進行更改。

當然,您也可以使用完全限定路徑:

app.use("/public", express.static(path.join("/someVol/users/me/myProject/public")));

請記住,express.static()中間件會打開您指向的整個目錄樹以供公共訪問,因此您必須絕對確保其中只有公共內容。默認情況下,express.static()不允許..進入路徑,因此請求無法離開您指定的目錄。


查看完整回答
反對 回復 2023-10-10
  • 1 回答
  • 0 關注
  • 174 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號