2014-01-27 62 views
2

我有一個NodeJS應用程序,我想從Upstart啓動。到目前爲止,該過程起作用,Upstart啓動應用程序,但是當我加載頁面時,CSS不加載。奇怪的是,如果我使用#node myapp.js啓動應用程序,它將啓動並正確加載文件。如果有的話,我不能做出讓這個問題成爲可能的區別。任何幫助,將不勝感激。NodeJS應用程序在啓動時無法加載靜態文件

這是我是如何設置的應用程序:

var express = require('express'), 
    config = require('getconfig'), 
    path = require('path'), 
    expressValidator = require('express-validator'), 
    crypto = require('crypto'), 
    app = express(); 

app.configure('development', function() { 
    app.use(express.logger('dev')); 
}); 

app.configure(function() { 
    app.use(require('less-middleware')({ src: path.join(__dirname, 'public') })); 
    app.use(express.static('public')); 
    require('./bootstraps/handlebars')(app); 
    app.use(express.favicon()); 
    app.use(express.limit('5mb')); 
    app.use(express.urlencoded({limit: '5mb'})); 
    app.use(express.multipart({limit: '5mb'})); 
    app.use(express.json({limit: '5mb'})); 
    app.use(express.cookieParser(config.http.cookieSecret)); 
    app.use(expressValidator()); 
    app.use(express.methodOverride()); 
    require('./bootstraps/session')(app); 
    app.use(function(req,resp,next){ 
     resp.locals.session = req.session; 
     next(); 
    }); 
    app.use(app.router); 
    require('./bootstraps/controllers')(app); 
}); 

app.listen(process.env.PORT || config.http.port); 

module.exports = app; 

...這是我的Upstart腳本:

#!upstart 
description "My Project" 
author  "Author" 

start on startup 
stop on shutdown 

script 
    export HOME="/root" 

    echo $$ > /var/run/myprocess.pid 
    su -s /bin/sh -c 'exec "$0" "[email protected]"' theuser -- /root/local/bin/node /path/to/my_project/myapp.js >> /var/log/my_project/system.log 2>&1 
end script 

pre-start script 
    # Date format same as (new Date()).toISOString() for consistency 
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Starting" >> /var/log/my_project/system.log 
end script 

pre-stop script 
    rm /var/run/dreamcasino.pid 
    echo "[`date -u +%Y-%m-%dT%T.%3NZ`] (sys) Stopping" >> /var/log/my_project/system.log 
end script 

回答

3

您可以使用CHDIR,這樣的工作路徑是正確的

script 
    export HOME="/root" 
    chdir /path/to/my_project/ 
    echo $$ > /var/run/myprocess.pid 
    exec sudo -u theuser /root/local/bin/node /path/to/my_project/myapp.js >> /var/log/my_project/system.log 2>&1 
end script 
+0

我在日誌中得到這個:'su:user/root/local/bin/node does not exist'。沒有改變任何東西,只添加了建議的行。 – reydelleon

+0

你可以試試我的編輯? –

+0

是的,結果在之前的評論中。順便謝謝你的時間。 – reydelleon

相關問題