Javascript Node.js app.js使css和js可用
我想知道如何制作我的app.js,这样我就可以从index.html或放置在“public”文件夹中的任何其他html页面访问任何.js或.css文件。我将.css和.js文件放在“public”文件夹中不同的“css”或“javascript”文件夹中,但如果没有直接放在公共文件夹中的css和javascript,并且没有子文件夹,我真的不知道如何使我的index.html连接到它们 有没有可能使“公共”文件夹中的所有文件都可以连接,而不必一直将它们添加到app.js中 这是app.js:Javascript Node.js app.js使css和js可用,javascript,html,css,node.js,Javascript,Html,Css,Node.js,我想知道如何制作我的app.js,这样我就可以从index.html或放置在“public”文件夹中的任何其他html页面访问任何.js或.css文件。我将.css和.js文件放在“public”文件夹中不同的“css”或“javascript”文件夹中,但如果没有直接放在公共文件夹中的css和javascript,并且没有子文件夹,我真的不知道如何使我的index.html连接到它们 有没有可能使“公共”文件夹中的所有文件都可以连接,而不必一直将它们添加到app.js中 这是app.js: v
var
http = require('http'),
path = require('path'),
fs = require('fs'),
extensions = {
".html" : "text/html",
".css" : "text/css",
".js" : "application/javascript",
".png" : "image/png",
".gif" : "image/gif",
".jpg" : "image/jpeg"
};
function getFile(filePath,res,page404,mimeType){
fs.exists(filePath,function(exists){
if(exists){
fs.readFile(filePath,function(err,contents){
if(!err){
res.writeHead(200,{
"Content-type" : mimeType,
"Content-Length" : contents.length
});
res.end(contents);
} else {
console.dir(err);
};
});
} else {
fs.readFile(page404,function(err,contents){
if(!err){
res.writeHead(404, {'Content-Type': 'text/html'});
res.end(contents);
} else {
console.dir(err);
};
});
};
});
};
function requestHandler(req, res) {
var
fileName = path.basename(req.url) || '/index/index.html',
ext = path.extname(fileName),
localFolder = __dirname + '/public/',
page404 = localFolder + '404.html';
if(!extensions[ext]){
res.writeHead(404, {'Content-Type': 'text/html'});
res.end("<html><head></head><body>The requested file type is not supported</body></html>");
};
getFile((localFolder + fileName),res,page404,extensions[ext]);
};
http.createServer(requestHandler)
.listen(process.env.PORT, process.env.IP);
var
http=require('http'),
path=require('path'),
fs=需要('fs'),
扩展={
“.html”:“text/html”,
“.css”:“文本/css”,
.js:“应用程序/javascript”,
“.png”:“image/png”,
“.gif”:“image/gif”,
.jpg:“图像/jpeg”
};
函数getFile(filePath,res,page404,mimeType){
存在(文件路径,函数(存在){
如果(存在){
fs.readFile(文件路径、函数(错误、内容){
如果(!err){
文书标题(200{
“内容类型”:mimeType,
“内容长度”:contents.Length
});
res.end(目录);
}否则{
console.dir(err);
};
});
}否则{
fs.readFile(第404页,函数(错误,内容){
如果(!err){
res.writeHead(404,{'Content-Type':'text/html'});
res.end(目录);
}否则{
console.dir(err);
};
});
};
});
};
函数requestHandler(req,res){
变量
fileName=path.basename(req.url)| |'/index/index.html',
ext=path.extname(文件名),
localFolder=\uu dirname+'/public/',
page404=localFolder+'404.html';
如果(!扩展名[ext]){
res.writeHead(404,{'Content-Type':'text/html'});
res.end(“不支持请求的文件类型”);
};
getFile((localFolder+fileName)、res、page404、扩展名[ext]);
};
http.createServer(requestHandler)
.listen(process.env.PORT、process.env.IP);
非常感谢您的帮助,如果您需要我列出我的文件夹结构,请告诉我(尽管我不知道为什么这是必要的…)您可以使用
ExpressJS
var fileName = path.basename(req.url) || '/index/index.html', // etc
path.basename()
去掉所有目录信息,只需将文件名返回给您即可。您需要更像以下内容的内容:
// you should refactor and expand on this one-liner where it makes sense
var urlpath = require('url').parse(req.url).pathname;
var fileName = urlpath || '/index/index.html', // etc
@minitech是对的,您应该使用Nginx提供静态文件。如果这纯粹是出于学术原因,那么看看其他静态文件服务器项目,如
摇头丸
或connectstatic
中间件。您是否试图下载CSS和JS文件,并将其作为文本显示在浏览器中?或者仅仅被一个HTML页面引用?仅仅被一个HTML页面引用Daniel不推荐使用Express。如果出于某种原因你真的不能使用Express,请查看Express在引擎盖下使用的代码,以获得灵感。如果你需要帮助上快车,我会在上面放一个视频。它会告诉你为什么要使用Express。哦,你已经将你的系统开放给了一个新的平台,尽管你已经通过白名单列出了你支持的文件扩展名来限制它。正确、安全地完成这些工作并不容易,而且有很多可靠的选项可以为您正确、安全地完成这些工作,这就是为什么人们通常会建议您不要自己完成这些工作。