2014-11-26 3 views
0

나는 서버를 중단 시키거나 재부팅해야 systemd를 사용하여 프로덕션 모드로 배포하려고하는 node.js 응용 프로그램을 다시 시작합니다. '노드 app.js'를 사용하여 시작할 때 앱이 정상적으로 작동합니다 (즉, 모든 공개 파일을 찾을 수 있음). 그러나 프로세스를 종료하고 systemd가 시스템을 다시 시작할 때 Express는 더 이상 내 css/js 파일을 찾을 수 없습니다. 연결 자산을 사용하여 내 CSS/JS 파일을 연결합니다.systemd가 node.js 앱을 다시 시작할 때 내 css/js 파일을 찾을 수없는 이유는 무엇입니까?

문제는 내 노드 경로라고 생각하지만 완전히 확신하지는 않습니다. 내가 수동으로 '노드 app.js'명령을 사용하기 시작하는 과정을 검토 할 때는

500 Error ... 
> 11| != css('styles') 
12| != js('application') 
No file found for route css/styles.css 

내가 참조 :

ghost 30222 6.8 17.8 140348 90848 pts/0 Sl+ 18:01 0:08 node app.js 
systemd가 응용 프로그램을 다시 시작할 때 이것은 내가 내 브라우저에서 볼 수있는 오류입니다

그리고 systemd 내가 다음을 참조 응용 프로그램을 다시 시작할 때 :

: 여기
ghost 30332 5.5 9.1 94036 46516 ?  Ssl 18:05 0:01 /usr/local/bin/node /home/ghost/myapp/app.js 

내 서비스 파일입니다
[Service] 
ExecStart=/usr/local/bin/node /home/ghost/myapp/app.js 
Restart=always 
StandardOutput=syslog 
StandardError=syslog 
SyslogIdentifier=node-sample 
User=ghost 
Group=ghost 
Environment=NODE_ENV=production 

[Install] 
WantedBy=multi-user.target 
+3

당신은 설정할 수 있습니다 귀하의'WorkingDirectory'에'/ 홈/유령/MyApp를 /'. – Wrikken

+0

그래, 그 트릭을하는 것처럼 보였다. 감사합니다 @ Wrikken! – gh0st

답변

1

WorkingDirectory=을 노드 응용 프로그램의 최상위 디렉토리에 설정해야합니다. 예를 들어

:

WorkingDirectory=/home/ghost/myapp 

또는 글로벌 설치된 앱에 대한

,

WorkingDirectory=/usr/lib/node_modules/myapp 
+0

정답 - 받아 들여야합니다. –