如何检查 HTML 文件是不是在给定目录中,然后使用同一目录中引用的 CSS 和 JS 文件打开该文件
Posted
技术标签:
【中文标题】如何检查 HTML 文件是不是在给定目录中,然后使用同一目录中引用的 CSS 和 JS 文件打开该文件【英文标题】:How to check if an HTML file is in a given directory, and then open that file with the referenced CSS and JS files within same directory如何检查 HTML 文件是否在给定目录中,然后使用同一目录中引用的 CSS 和 JS 文件打开该文件 【发布时间】:2019-10-04 06:06:49 【问题描述】:对于我的作业问题,我需要检查某个文件是否存在于某个 目录“public”,如果是,则通过 浏览器中的本地主机。我想使用一个函数来检查文件是否 存在于目录中,如果为真,则将文件路径发送到另一个打开文件的函数。这些都在我的 server.js 文件中,我要打开的 html 文件以及 HTML 文件的 CSS 和 JS 都在我的公共目录中。
这是使用 node.js。我需要在控制台中运行 node server.js,然后在浏览器中访问我的 localhost 并查看显示的具有样式和功能的网页。我试过使用 fs.access 和 fs.existsSync。我们不允许在此作业中使用 express。
var http = require('http');
var fs = require('fs');
http.createServer(function(req, res)
var filepath = 'public' + req.url;
if (req.url == '/index.html' || req.url == '/')
fs.access(filepath);
).listen(3000);
console.log("Server running on Port 3000...");
fs.access(filepath, (access) =>
if (access)
res.statusCode = 200;
sendFile(filepath, res);
else
res.statusCode = 404;
sendFile('public/404.html', res);
);
function sendFile(path, res)
fs.readFile(path, "utf8", function(data)
res.end(data);
);
我收到一条错误消息,指出未定义文件路径(当我在调用 fs.access 时在参数中使用它时。
【问题讨论】:
在您的fs.access
代码中,res
对象来自哪里?
【参考方案1】:
fs 需要带有前导斜杠的路径才能工作,因此请尝试使用 var filepath = 'public' + req.url;
代替
var filepath = '/public' + req.url;
【讨论】:
以上是关于如何检查 HTML 文件是不是在给定目录中,然后使用同一目录中引用的 CSS 和 JS 文件打开该文件的主要内容,如果未能解决你的问题,请参考以下文章