내 응용 프로그램의 NodeJitsu 폴더 구조는 다음과 같습니다 (예 : jitsu deploy
일 때 "server.js"가 포함 된 폴더에 있음) 즉, "서버"폴더).NodeJitsu 오류 : ENOENT, stat '/ opt/run/snapshot/
Root server
|___server.js
|___package.json
client
|___www
|___index.html
|___css
|___js
|___etc.
그래서 루트에는 "server.js"라는 시작 스크립트가 들어있는 폴더 "server"가 있습니다. 그러면 "client"라는 폴더가 있는데, "server"와 평행하게 "www"라고 불리는 폴더가 있고 "www"안에는 "index.html"이 있습니다.
app.get(‘/’, function(req,res)
{
var aPath = path.resolve(“../client/www/”, “index.html”);
res.sendFile(aPath);
});
나는 app.use(express.static(__dirname + '/somefolder')
가없는 : 내 "server.js"파일에서
, 나는 다음과 같은 코드가 있습니다. 나는 응용 프로그램을 시작할 때, 나는이 오류가 :
Error: ENOENT, stat '/opt/run/snapshot/client/www/index.html'
내 process.cwd()
이 /opt/run/snapshot/package
입니다. 분명히 위의 경로는 "index.html"이있는 위치를 가리키고 있지 않습니다. 그러나 나는 path.resolve(…)
을 "index.html"을 가리켜 야한다고 생각했습니다. 문제가 어디 있는지 알 수 없습니다. "server.js"가 루트에 있다면 "client/www/index.html"에있는 "index.html"을 얻으려면 "../client/www"라고 써야합니다. excuting script에 "index.html"에 가야합니다.
경로가 올바르게 설정되지 않은 부분에 대한 통찰력이 있습니까? /opt/run/snapshot/
은 무엇을 가리켜 야합니까? 또는 정확하게 "index.html"을 가리 키도록 get(‘/’)
처리기에서 어떤 변경을해야합니까?
편집
내가 잘못 폴더 구조를 그렸습니다. 이제는 맞습니다.
또한 app.get()
을 해제하고 app.use(express.static(__dirname + '/../client/www/')
을 켰습니다. 그러나 아무 소용이 : 지금 나는 Cannot GET /
오류가 발생합니다.
"server.js"파일을 주로 클라이언트에 대한 AngularJS HTML 파일, 교환 원 이미지, 스타일 시트 등을 제공하는 노드 서버로 설정하는 것이 궁극적입니다. " 폴더. 이것은 서버의 주요 역할이며, 매우 훌륭한 Satellizer 모듈을 사용하여 앱의 사용자를 인증하는 역할을합니다. 그리고 그게 다야. 나는 MongoDB를 첨부했다. 그러나 그렇지 않으면 매우 일반적이며 솔직한 Node.js 서버 애플리케이션이다.
감사합니다.
// notice no leading/which is root. __dirname should be the dir of current file running
var staticPath = path.resolve(__dirname, '../client/www');
console.log(staticPath);
그런 다음 express.static
app.use(express.static(staticPath);
로 되었 아마 레이아웃과 생성 명시의 규칙을 따르는 것이 좋습니다 것입니다 :
로컬로 작업하고 있습니까?귀하의 클라이언트와 WWW는 대문자이므로 대소 문자가 아닌지 확인하십시오. – laggingreflex