为什么在systemd重新启动我的node.js应用程序时找不到我的css / js文件?

时间:2014-11-26 23:46:22

标签: node.js systemd connect-assets

我有node.js应用程序,我试图在生产模式下使用systemd在服务器崩溃/重启时重新启动它。当我使用节点app.js'启动它时,该应用程序正常工作。 (即找到我的所有公共文件)。但是,当我终止进程并且systemd重新启动它时,Express无法再找到我的css / js文件。我使用connect-assets连接我的css / js文件。

我认为问题是我的节点路径,但我并不完全确定。 当systemd重新启动应用程序时,我在浏览器中看到这个错误:

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

当我检查我使用“节点”app.js'手动启动的过程时命令我看到了:

ghost   30222  6.8 17.8 140348 90848 pts/0    Sl+  18:01   0:08 node app.js

当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

1 个答案:

答案 0 :(得分:1)

您需要将WorkingDirectory=设置为Node应用程序的顶级目录,无论它在哪里。

例如:

WorkingDirectory=/home/ghost/myapp

或全球安装的应用

WorkingDirectory=/usr/lib/node_modules/myapp