Javascript 当html文件通过节点静态提供时,具有本地(文件://)src的属性不起作用

Javascript 当html文件通过节点静态提供时,具有本地(文件://)src的属性不起作用,javascript,html,node.js,Javascript,Html,Node.js,我是node.JS新手,一直在处理一个简单的客户机-服务器连接,其中index.html文件在localhost上提供给用户。我的index.html文件在没有服务器的情况下打开时工作得很好,但一旦我通过节点提供它们,任何带有本地src的图像、iframe或脚本都会中断 对于视觉效果,我在index.html中有以下内容: 你好 我的节点文件(server.js)为该文件提供以下代码: consthttp=require('http')) 常量fs=require('fs') const s

我是node.JS新手,一直在处理一个简单的客户机-服务器连接,其中index.html文件在localhost上提供给用户。我的index.html文件在没有服务器的情况下打开时工作得很好,但一旦我通过节点提供它们,任何带有本地src的图像、iframe或脚本都会中断

对于视觉效果,我在index.html中有以下内容:


你好
我的节点文件(server.js)为该文件提供以下代码:

consthttp=require('http'))
常量fs=require('fs')
const server=http.createServer((req,res)=>{
res.writeHead(200,{'content-type':'text/html'})
fs.createReadStream('index.html').pipe(res)
})
server.listen(process.env.PORT | | 3000)
总的结果是Hello的标题!正在本地主机上显示:3000,但图像不工作


我确信这个问题与我对node的相对缺乏经验有关,而不是html内部的任何内容,也许这甚至是出于安全策略的考虑?我希望有人能以我能理解的方式来解决这个问题,甚至给出一些解决方案,我很乐意投票给任何愿意投入时间的人。

如果你使用HTTP服务器(如NodeJS)为你的网站服务,你应该使用相同的服务器将资产或引用的资源提供给CSS等浏览器,JS和其他链接文件

下面的代码用于执行此操作。其想法是制作一个中间件,以便为html文件使用的静态文件提供服务

const express=require('express');
const path=require('path');
const http=require('http');
const BUILDPATH=path.join(\uu dirname);
const{PORT=3000}=process.env;
常量app=express();
应用程序集(“端口”,端口);
app.use(express.static(BUILDPATH));
get('/*',(req,res)=>res.sendFile('index.html',{root:BUILDPATH}));
const httpServer=http.createServer(app);
httpServer.listen(端口);

console.info(`这是出于设计。那么有没有办法将文件提供给用户?网页无法访问客户端的本地文件系统。??!!!?!非常感谢!我会向上投票,但@Kevin B的向下投票使我的声誉太低(我需要15票才能投票),同时,我接受了答案。(当我的声誉恢复时,我一定会回来投票)。