我正在尝试在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标签在哪里找到图像?!
答案 0 :(得分:0)
好的,我终于想通了。万一其他人遇到这个问题就是答案:
在声明任何路由之前,请添加static
中间件:
app.use(express.static(__dirname + '/public'));
" static
中间件与为每个要传递的静态文件创建路由具有相同的效果,该路由会呈现文件并将其返回给客户端#34; - 摘自O' Reilly的Web开发与节点&快递书。
然后在html文件中,如果您的图片文件位于<img src="/img/logo.png">
,则可以使用public/img/logo.png
。