node js中的静态文件Path调用
Static file Path call in node js
我已经创建了一个服务器端应用程序,可以检索该目录中的 index.html 文件。
代码如下,
const http = require('http')
const fs = require('fs')
const port = process.env.PORT || 1337;
const server = http.createServer(function (req, res){
if(req.url.match(/^\/static/))
return respondStatic(req,res)
return respondNotFound(req,res)
});
server.listen(port)
function respondStatic(req,res){
const filename = `${__dirname}/public${req.url.split('/static')[1]}`
fs.createReadStream(filename)
.on('error',()=> respondNotFound(req,res))
.pipe(res)
console.log(req.url);
}
然后运行 程序并给浏览器如下URL。
http://localhost:1337/static/index.html
当我看到终端后,我看到下面的代码行 console.log(req.url);
为我提供了 3 个输出,如下所示。
/static/index.html
/static/tachyons.min.css
/static/ember.jpg
在那个目录下,有5个文件。
chat.css
chat.html
chat.js
ember.jpg
index.html
tachyons.min.css
ember.jpg 和 tachyons.min.css 用于 index.html。
问题是:
Although I gave index.html as static file Why other 2 file( which
is /static/tachyons.min.css & /static/ember.jpg prints as req.url in
console?
该代码不 仅 index.html
作为静态文件提供服务,它提供该目录中被请求的任何文件。正如你在这里暗示的那样:
ember.jpg and tachyons.min.css are using for index.html
因此,如果 index.html
引用了另外两个文件,那么当您在浏览器中请求 index.html
时,您也会请求另外两个文件。当代码为这些请求提供服务时,它会在此处记录到控制台:
console.log(req.url);
我已经创建了一个服务器端应用程序,可以检索该目录中的 index.html 文件。
代码如下,
const http = require('http')
const fs = require('fs')
const port = process.env.PORT || 1337;
const server = http.createServer(function (req, res){
if(req.url.match(/^\/static/))
return respondStatic(req,res)
return respondNotFound(req,res)
});
server.listen(port)
function respondStatic(req,res){
const filename = `${__dirname}/public${req.url.split('/static')[1]}`
fs.createReadStream(filename)
.on('error',()=> respondNotFound(req,res))
.pipe(res)
console.log(req.url);
}
然后运行 程序并给浏览器如下URL。 http://localhost:1337/static/index.html
当我看到终端后,我看到下面的代码行 console.log(req.url);
为我提供了 3 个输出,如下所示。
/static/index.html
/static/tachyons.min.css
/static/ember.jpg
在那个目录下,有5个文件。
chat.css
chat.html
chat.js
ember.jpg
index.html
tachyons.min.css
ember.jpg 和 tachyons.min.css 用于 index.html。
问题是:
Although I gave index.html as static file Why other 2 file( which is /static/tachyons.min.css & /static/ember.jpg prints as req.url in console?
该代码不 仅 index.html
作为静态文件提供服务,它提供该目录中被请求的任何文件。正如你在这里暗示的那样:
ember.jpg and tachyons.min.css are using for index.html
因此,如果 index.html
引用了另外两个文件,那么当您在浏览器中请求 index.html
时,您也会请求另外两个文件。当代码为这些请求提供服务时,它会在此处记录到控制台:
console.log(req.url);