나는 다음과 같은 파일 위치를 가지고 : 나는 file:///Users/MyName/Developer/sitename/sitename.html
모든 것을 열 때마다Node.js를 통해 정적 파일을 로컬에서 어떻게 제공합니까?
<html>
<head>
<script src="scripts/somefile.js"></script>
</head>
...
</html>
그래서 잘 작동 : 예를 들어 다음과 같이 내가 필요한 모든 파일을로드
file:///Users/MyName/Developer/sitename/scripts (contains all .js files..)
file:///Users/MyName/Developer/sitename/css (contains all .css files..)
file:///Users/MyName/Developer/sitename/images (contains all .jpg/png/etc. files..)
file:///Users/MyName/Developer/sitename/sitename.html
file:///Users/MyName/Developer/sitename/server.js
sitename.html
내부. 그러나
, 내가 설치 (서버 파일 위치 : file:///Users/MyName/Developer/sitename/server.js
)를했습니다 로컬 Node.js를 서버를 통해 file:///Users/MyName/Developer/sitename/sitename.html
를로드하려고 할 때마다 다음과 같이
var http = require("http");
var fs = require("fs");
fs.readFile('./sitename.html', function (err, html)
{
if (err) throw err;
http.createServer(function (request,response)
{
// serve site
if (request.url === "/")
{
response.writeHeader(200, {"Content-Type": "text/html"});
response.write(html);
}
response.end();
}).listen(8080);
});
sitename.html
가 발견로드하지만, 모든 다른 로드하는 파일은 모두 접두어 http://localhost:8080/
(예 : http://localhost:8080/scripts/somefile.js
은 유효하지 않은 파일 경로)이 부여되어로드되지 않습니다.
그것은 곧 서버가 (http.createServer(.....);
내부) 생성으로 같은 맥락의 변화와 상위 디렉토리 지금 http://localhost:8080/
대신 내가 추측 말이 여전히 로컬에 저장되어있는 파일을 사용할 때 매우 도움이되지 않습니다 file:///Users/MyName/Developer/sitename/
하게 보인다.
어떻게 해결할 수 있습니까? 사실 server.js
(당분간은) 같은 디렉토리에 저장하는 것이 훨씬 더 혼란 스럽습니까?
감사합니다.
안녕하세요. 회신 해 주셔서 감사합니다. 내가 제안한 두 가지 옵션을 살펴 보겠습니다. 그러나 내가 이것에 처음으로 등장했기 때문에 조금 더 자세히 설명해 주실 수 있습니까? 누군가가 웹 앱을 만들고 Node.js를 사용하여 앱을 제공하고 앱에 많은 정적 파일 (분명히)이있을 때마다 개발자는 앱을 로컬에서 테스트 할 때 항상 제안한 것과 같은 "플러그인"을 사용해야합니다. 조금 이상한 것 같지 않습니다. Node는 제공 될 모든 정적 파일에 대한 상위 폴더 위치를 지정하는 기본 옵션이 제공되지 않습니다. 도와 주셔서 다시 한 번 감사드립니다! –
Node는 이러한 파일을 제공 할 수있는 도구를 제공하므로 간단하게 구현해야합니다. 그렇기 때문에 많은 모듈이 존재합니다. 왜냐하면 기능은 그냥 상자 밖으로 나오지 않기 때문입니다. 확실히 Node.js로 파일을 제공 할 수 있지만 "/style.css"에 대한 요청을 인식하고 디스크에서 해당 파일을 읽는 경로를 서버에 구현해야합니다. –
제프 (Jeff)를 명확히 밝히신 고마워요. –