【发布时间】:2019-03-18 21:59:58
【问题描述】:
我正在开发一个小型 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>
我发现了多种使用 express 的解决方案,人们说你必须通过 express 来提供静态文件,例如
app.use(express.static('src'));
但我想不加快递。
*更新:在指向我的文件的链接之前添加 \.\ 会返回此错误
不允许加载本地资源: file://.//Footage/UserTemplateIcon.png
【问题讨论】:
标签: javascript html node.js