Node.js无法从html参考中找到图像

艾奥努特·尤金(Ionut Eugen)

我正在开发一个小型Web应用程序,并且希望使其尽可能整洁(无api或框架*无明文)。

我一开始就遇到了第一个问题。

一旦我使用nodejs渲染html文件,从html内部调用的对文件的引用通常就“不存在”?

GET http:// localhost:3000 / Footage / UserTemplateIcon.png 404(未找到)

如果我尝试将html作为单个文件运行(没有节点),则找到了我的图像,但是由于某种原因,没有使用nodejs

这是我的文件结构

在此处输入图片说明

我的nodejs代码:

const http = require('http'),
    port = 3000,
    fs = require('fs'),
    events = require('events'),
    util = require('util');
var myEmitter = new events.EventEmitter();


const server = http.createServer((req, res) => {
    if(req.url === "/"){
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/plain');
        res.end("Main page");

    } else 
    if(req.url === "/feed"){
        res.statusCode = 200;
        res.setHeader('Content-Type', 'text/html');
        var myReadStream = fs.createReadStream(__dirname + '/src/Feed/index.html', 'utf8');
        myReadStream.pipe(res);
    }
    else {
        res.statusCode = 404;
        res.setHeader('Content-Type', 'text/html');
        var myReadStream = fs.createReadStream(__dirname + '/src/404/index.html', 'utf8');
        myReadStream.pipe(res);
    }
});

server.listen(port, () => {
    console.log(`Server running on ${port}`);
})

和我的HTML

<html>
<head>
   <div class="headerUserIcon"><img src=".\Footage\UserTemplateIcon.png"></div>
</head>
<body>
</body>
</html>

我发现有多种表达方式,其中有人说您必须通过表达类似内容来提供静态文件

app.use(express.static('src'));

但是我想不加说明地做这件事。

*更新:在添加到我的文件的链接之前,添加\。\返回此错误

不允许加载本地资源:file://.//Footage/UserTemplateIcon.png

琼斯

您的程序包含如下代码:

if(req.url === "/"){
    /* send something */
} 
else if(req.url === "/feed"){
    /* send something  else*/
}
else {
   /* send an error */
}

如果您要发送其他文件(例如.png),则每个文件都必须在if / else if级联中出现,或者在switch语句中,或者以某种形式进行解析req.url普通节点http服务器对任何文件系统一无所知。它被完全剥夺了。(这种方式与nginx或apache不同。)

Express提供了一个很好的框架来教节点html服务器有关文件系统,内容类型,路由,流,管道和其他方面的知识。没有表达,您需要自己教html服务器有关png文件,css和js等的信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ngx-monaco-editor:无法从node_modules中找到loader.js文件

Node.js无法在另一个文件夹中找到文件

无法从“node_modules/use-always/dist/use-always.js”中找到模块“always”?

即使路径正确,也无法在Node中找到文件

nodemon 无法在 exec 参数中找到 ts-node

如何在Node.js中找到文件的大小?

如何在Node.js的目录中找到文件?

无法在Debian上找到Node.js

无法从“node_modules/@testing-library/react/dist/pure.js”中找到模块“react-dom/client”

无法在 Node JS 中渲染图像

检测 HTML 图像参考中的图像路径并创建链接

错误:无法使用 Node.JS 和 Express 找到模块“html”

HTML无法进入Node js puppeteer

HTML在Node Js中无法正确显示

自定义 Docker 容器 Github 操作无法在 /github/workspace 中找到 Node 脚本

导入映像时,TS无法从node_modules中找到模块

无法从“/react/node_modules/react-redux/lib/components”中找到模块“react”

在图像中找到参考点的最快方法

无法使用 node.js 找到 mongodb 数组

如何在linux中找到我的node.js文件,/ usr / bin / node不起作用

如何在node.js中找到页面上的所有链接?

如何在node.js依赖树中找到本机模块?

Node.js:如何在JSON对象中找到特定的键值对

在Node.js中找到带来另一个依赖关系的依赖关系

如何循环播放,直到在Node.js中找到包含特定数据的文件?

使用 Node JS 下载图像

获取图像 (Node.js)

Node.js参考路径绝对

Node.js Promise参考错误