2015-09-14 79 views
0

在我的快遞應用中,靜態資產將不會在something/something上投放。表示靜態資產不工作深入路由東西

/** 
* Express configuration. 
*/ 
app.set('port', process.env.PORT || 3000); 
app.set('views', path.join(__dirname, 'views')); 
app.engine('handlebars', exphbs({defaultLayout: 'main'})); 
app.set('view engine', 'handlebars'); 
// app.use(compress()); 
// app.use(assets({ 
// paths: ['public/css', 'public/js'] 
// })); 
app.use(logger('dev')); 
app.use(favicon(path.join(__dirname, 'public/favicon.png'))); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(expressValidator()); 
app.use(methodOverride()); 
app.use(cookieParser()); 
app.use(session({ 
    resave: true, 
    saveUninitialized: true, 
    secret: secrets.sessionSecret, 
    store: new MongoStore({ url: secrets.db, autoReconnect: true }) 
})); 
app.use(passport.initialize()); 
app.use(passport.session()); 
app.use(flash()); 
app.use(lusca({ 
    csrf: true, 
    xframe: 'SAMEORIGIN', 
    xssProtection: true 
})); 
app.use(function(req, res, next) { 
    res.locals.user = req.user; 
    next(); 
}); 
app.use(function(req, res, next) { 
    if (/api/i.test(req.path)) req.session.returnTo = req.path; 
    next(); 
}); 
app.use(express.static(__dirname + '/assets')); 

然後在我的主要佈局

<link rel="stylesheet" href="css/main.css"> 

主頁工作,但不是嵌套的路線?

回答

4

樣式表href是相對鏈接,這意味着它會被瀏覽器解釋爲相對於當前網頁的路徑,所以它會被不同interpeted嵌套的路徑,不是一個頂級的網頁。你可能需要改變你的鏈接是這樣的:那麼

<link rel="stylesheet" href="/css/main.css"> 

,它被解釋一樣,無論是網頁的路徑你把它恰好是。

鑑於您的express.static()代碼,則此路徑"/css/main.css"將被查找爲__dirname + "/assets/css/main.css"

+0

正在尋找這個。剛剛過完我的一天。謝謝! – kinxiel