Node.js ExpressJS无法通过HTTPS为静态文件提供服务

Node.js ExpressJS无法通过HTTPS为静态文件提供服务,node.js,express,https,Node.js,Express,Https,我有一个奇怪的问题。最近,我在expressjs应用程序中添加了一个HTTPS服务器,该应用程序在大部分情况下运行良好。例外情况是,从应用程序静态数据之外的文件夹(与app.js处于同一级别的名为“/data”的文件夹)中检索到的某些图像不再在整个站点上显示,而它们在HTTP服务器上显示了,并且仍然显示得很好 我在app.js中使用下面的行包括/data文件夹: app.use(express.static(path.join(_dirname, 'data'))); 这些图像是通过div上的

我有一个奇怪的问题。最近,我在expressjs应用程序中添加了一个HTTPS服务器,该应用程序在大部分情况下运行良好。例外情况是,从应用程序静态数据之外的文件夹(与app.js处于同一级别的名为“/data”的文件夹)中检索到的某些图像不再在整个站点上显示,而它们在HTTP服务器上显示了,并且仍然显示得很好

我在app.js中使用下面的行包括/data文件夹:

app.use(express.static(path.join(_dirname, 'data')));
这些图像是通过div上的css背景图像加载的缩略图。奇怪的是,在HTTPS服务器上,我仍然可以通过控制台或地址栏直接访问图像的URL来访问图像,即使缩略图神秘地丢失了。URL前面正确地加上https://因此它是正确的服务器

在控制台中,我得到一个307 Internal Redirect的状态代码,在响应标题下的非权威原因旁边,它表示Delegate。实际上,如果我点击了预览或响应选项卡,这都是在Chrome中,顺便说一句,它说加载响应数据失败。有什么问题吗

更新:我尝试将HTTPS端口更改为3000,只是为了测试。令我惊讶的是,/data文件夹中的图像加载并显示得很好。所以问题不在于HTTPS,而在于端口。。。但我还是不知道为什么

因此,总结目前的结果:

在端口80443上运行:图像不显示 在端口1023、1024、3000上运行:图像显示
有人知道发生了什么吗?

经过广泛的测试,我得出结论,这可能是一个针对我自己情况的问题,而不是一个简单的问题。数据文件夹没有什么不寻常的地方——事实上,webapp直接访问其中的文件没有问题。这意味着expressjs包含了静态目录,就像它应该包含的一样


真正的问题在于数据中另一个特定文件夹的内容。这是返回307状态的唯一场景。最后,端口号似乎仍然是一个因素,因为某些其他端口确实可以像我在原始帖子中所说的那样工作,但这非常奇怪。如果我复制了那个文件夹并将其重命名,它的内容就可以很好地访问。我想这就是我现在的解决方案,直到我找到这个问题的真正原因。

我最近也遇到了这个问题,在我的案例中,是广告拦截器阻止了我所有的模拟广告牌和模拟mpu广告图像,因为它们是express提供的特定大小的


在Firefox中运行相同的页面后发现它,该页面没有安装广告块扩展。

dirname是一个拼写错误吗?它应该是_dirname。你能展示一些失败的CSS吗,特别是在它显示URL的地方?是的,这是一个打字错误。我的错。原始代码有一个双下划线。此外,div元素中涉及的CSS如下:。。。我使用的是angularjs,所以这些是范围中的变量。但这不是问题的一部分,因为我尝试使用图像的直接url。我确实偶然发现了这一点:,在这一点上,用户似乎与我的问题非常相似,如果不是确切的话。有一个回复,还有两个链接和一个理论,但我不确定从中得出什么具体的解决方案。