2013-03-03 2 views
0

옥 파일을 렌더링하는 웹 서버를 실행 중입니다. 옥 파일에는 자바 스크립트 파일이 있습니다. 페이지 렌더링 괜찮아요 javascript 파일을 찾을 수 없습니다.Jade가 javascript 파일 + node.js에 연결할 수 없습니다.

노드 서버

var http = require('http') 
    , url = require('url') 
    , fs = require('fs') 
    , jade = require('jade') 
    , server; 

server = http.createServer(function(req, res) { 
    var path = url.parse(req.url).pathname; 

    switch (path) { 

    case '/audio': 
     var options = {pretty: true}; 
     jade.renderFile('myJadeFile.jade', options, function(err, html) { 
      if (err) return send404(res); 
      res.writeHead(200, {"Content-Type": "text/html"}); 
      res.write(html, 'utf8'); 
      res.end(); 
     }); 
     break; 

    default: send404(res); 
    } 
}); 

function send404(res) { 
    res.writeHead(404); 
    res.write('404'); 
    res.end(); 
} 

server.listen(3000, function() { 
    console.log("listening on port:3000"); 
}); 

옥 내가이 오류를 얻을

!!! 5 
html(lang="en") 
    head 
    meta(charset="UTF-8") 
    title Please Work 
    script(src="myJSFile.js") 
    body 
    #container 
     h1 It worked! 

파일 :
GET http://localhost:3000/myJSFile.js 404 (Not Found)

그것은 파일을 찾는 아니에요 나는 확실하지 않다 무엇 나는 서버를 착용해야한다. 사이드 비취 옵션을 사용하여 자바 스크립트 파일을 찾습니다. 모든 파일은 같은 폴더에 있습니다.

제안 사항?

+0

본 적이있는 곳 : http://expressjs.com –

답변

1

제이드 (Jade)는 HTML 렌더링 도구이므로 표준 <script> 태그를 렌더링합니다. JS를 HTML 파일 자체로 컴파일하지 않습니다. case에 처리기를 제공하여 브라우저가 파일을 가져올 수 있도록 종속 파일을 처리해야합니다.

다음은 서버 파일과 동일한 디렉토리에 myJSFile.js가 있다고 가정 한 경우의 예입니다.

case '/myJSFile.js': 
    fs.createReadStream(__dirname + path).pipe(res); 
    break; 
+0

감사합니다. 나는'fs.readFile()'을 사용하여 종속 파일을 처리했지만'fs.createReadStream()'을 더 좋아합니다! – user1460015

관련 문제