Node.js로 작성된 웹 서버로 JS 및 CSS 읽기

8660 단어 Node.js
Node.js로 웹 서버를 써야 하기 때문에 HTML에서 JS와 CSS 파일을 읽을 수 없기 때문에 그 해결 방법
일단 index.답장 서버를 작성해 보세요.
server.js
var http = require('http');
var fs = require('fs');

http.createServer(function(req,res){
  fs.readFile('./index.html',function(err,data){
    res.writeHead(200,{"Content-Type":"text/html"});
    res.end(data,'utf-8');
  });
}).listen(8888); 
index.그러면js/index.js 읽는 중
index.html
<html>
  <head>
    <script type="text/javascript" src="./js/index.js"></script>
  </head>
  <body onload="hello()">
    <h1>Hello!</h1>
  </body>
</html>
index.js의 내용은 이번에는 단순히 경보를 발령했을 뿐입니다.
js/index.js
function hello(){
  alert("Hello!!");
}
이 상태에서 서버를 시작하면 js/index입니다.js 읽지 않기
내용은 index입니다.몰리다

수정


server.js/index 편집.js 읽기
server.js
var http = require('http');
var fs = require('fs');

http.createServer(function(req,res){
  var url = req.url; //リクエストからURLを取得
  var tmp = url.split('.'); //splitで . で区切られた配列にする 
  var ext = tmp[tmp.length - 1]; //tmp配列の最後の要素(外部ファイルの拡張子)を取得
  var path = '.' + url; //リクエストされたURLをサーバの相対パスへ変換する
  switch(ext){
    case 'js': //拡張子がjsならContent-Typeをtext/javascriptにする
       fs.readFile(path,function(err,data){
         res.writeHead(200,{"Content-Type":"text/javascript"});
         res.end(data,'utf-8');
       });
       break;
     case '/': //拡張子が/(index.html)だった場合はindex.htmlを返す
       fs.readFile('./index.html',function(err,data){
         res.writeHead(200,{"Content-Type":"text/html"});
         res.end(data,'utf-8');
       })
       break;
  }
}).listen(8888);
서버 내의 js 파일이나 css 파일을 읽을 수 있습니다

고민이 좀 있어서 메모만 썼어요

좋은 웹페이지 즐겨찾기