如何在Heroku上显示带有图像的静态html页面

时间:2016-03-08 00:28:12

标签: html url heroku

我正在尝试在Heroku上显示带有图像标记的html页面。图像存在,但我无法弄清楚使用什么路径,以便可以找到它。我一直在尝试使用每个绝对路径获得404错误,并且我不能使用相对路径,因为它将它附加到html页面加载的位置(恰好是/ api / errorcodes / x,其中x是一个用于查找原始html页面的数字)IE

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

所以目录结构如下:

视图/页/ Error1.html
视图/页/ Error1.fld / img001.png

并且Error1.html有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); }); 并返回404(页面Error1.html加载,但图像在heroku日志中获得404)。

我还尝试了“/app/views/pages/Error1.fld/img001.png”以及将图像移动到/ public并从那里尝试相同的组合。如何告诉img标签在哪里找到图像?!

1 个答案:

答案 0 :(得分:0)

好的,我终于想通了。万一其他人遇到这个问题就是答案:

在声明任何路由之前,请添加static中间件:

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

" static中间件与为每个要传递的静态文件创建路由具有相同的效果,该路由会呈现文件并将其返回给客户端#34; - 摘自O' Reilly的Web开发与节点&快递书。

然后在html文件中,如果您的图片文件位于<img src="/img/logo.png">,则可以使用public/img/logo.png