簡體   English   中英

如何在Heroku上顯示帶有圖像的靜態html頁面

[英]How to display static html page with image on Heroku

我正在嘗試在Heroku上顯示具有圖像標簽的html頁面。 該圖像存在,但是我無法弄清楚要使用什么路徑才能找到它。 我嘗試使用的每個絕對路徑都不斷出現404錯誤,並且我無法使用相對路徑,因為它會將其附加到加載html頁面的位置(恰好是/ api / errorcodes / x,其中x是用於查找原始HTML頁面的數字)IE

app.get('/api/errorcode/:errorcode', function(request, response) {
   var errorcode = request.params.errorcode;
   var doc = 'Error' + errorcode + '.html';
   console.log('__dirname = ', __dirname);
   response.sendFile(__dirname + '/views/pages/' + doc);
});

因此目錄結構如下:

views / pages / Error1.html
視圖/頁面/Error1.fld/img001.png

並且Error1.html具有<img src="/views/pages/Error1.fld/img001.png">並返回404(頁面Error1.html已加載,但圖像在heroku日志中獲得了404)。

我還嘗試過“ /app/views/pages/Error1.fld/img001.png”,以及將圖像移至/ public並從中嘗試相同的組合。 如何告訴img標簽在哪里找到圖片?

好吧,我終於想通了。 如果有人遇到這個問題,答案是:

在聲明任何路由之前,請添加static中間件:

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

static中間件的作用與為要傳遞的每個靜態文件創建一個路由(呈現該文件並將其返回給客戶端)具有相同的效果”-摘自O'Reilly的“使用Node&Express的Web開發”一書。

然后,如果圖像文件位於public/img/logo.png可以在html文件中使用<img src="/img/logo.png">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM