使用 nodejs 时,遇到了一个问题,求助大家

查看 115|回复 9
作者:ARslince   
node 版本:16.13.2
问题描述:
我在 server.js 中使用 fs.readFileSync 去读取一个 html 文件,然后用 response.end(html) 返回结果。
问题来了,如果 html 文件中 js 和 css 分别采用  -->



这是正常的显示样式

而当我把 css 和 js 使用外部引入的方式就出问题了

点击×号取消后,是如下样子

HTML, script, CSS, table

HelloWorld556   
是要设置 public 吗?我很少用 nodejs , 不知道对不对
powerN   
你这两个文件是请求的 ./ 目录下的。对应 127.0.0.2:9000/css 127.0.0.2:9000/js
但是没看到你在 nodejs 中返回这两个文件。且一直 pending 的可能是不是因为你只判断了 pathname === '/index.html' 才 res.end()
其他的资源没有就不会 res.end.
gadfly3173   
看起来像是浏览器不能访问到你的 css 和 js 文件,你看看你是不是没处理对其他文件的访问请求
zhangxh1023   
比如:你引入了 `./js/index.js` ,那么浏览器会像你的当前网址的相对路径,请求资源 `index.js`,你可以在 network 里面看到请求的目标地址,应该是: `http://xxxx:9000/js/index.js`, 如果你的服务端没有返回对应的 js 文件,就不行了。
你应该搜索一下: web 静态资源服务器
lanz0519   
你只是返回了 html 的资源,类似的功能通过 static 方式去管理更好,搜 nodejs 静态资源管理就能搜到
Rache1   
你这 server 回调里面只对 index.html 做了处理响应呀。
crazyTanuki   
我觉得是路径问题
ARslince
OP
  
谢谢各位老哥,问题已经解决了,原因是因为我 server 回调中只对 index.html 做了处理,并没有对 css 和 js 做处理,感谢各位!

mdn   
你这也太简陋了吧,是学习吗?
用下 express 也不至于有这个问题
https://expressjs.com/en/starter/static-files.html
您需要登录后才可以回帖 登录 | 立即注册

返回顶部