2016-05-16 51 views
0

我的应用程序从URL加载,如:server.com/pdf/12345。当它正在查找静态文件时,它会尝试GET /pdf/12345/assets/css/stylesheet.css和404s。我无法弄清楚如何告诉它在根中寻找/public/assets。尝试了许多不同的express.static配置。表达式静态不会加载根文件中的CSS文件

我的目录结构是这样的:

public 
--assets 
----css 
views 
--partials 
----header.ejs 
routes 
--api.js 
server.js 

server.js看起来是这样的(减去需要的清晰度):

app.use('/', routes); 
app.set('views', './views'); 
app.set('view engine', 'ejs'); 

app.use('/public', express.static(path.join(__dirname, 'public'))); 
http.createServer(app).listen(port, function() { 
}) 

我的谐音/ header.ejs包含链接样式表

回答

0

你应该这样写:

app.use(express.static(path.join(__dirname, 'public'))); 

如果从app.use('/public'开始,则表明您只是在路径/public上安装该函数,在您的情况下,我猜如果网址以server.com/public开头。但由于情况并非如此,express.static()从来没有发生。

+0

感谢您的回应,但不幸的是,在尝试检索资产时,它仍然追加/ pdf/1234 /路径:GET /pdf/1234/assets/css/style.css 404' –

+0

好的。而在你的ejs文件中,你将href写为“/assets/css/stylesheet.css”?如果是这样,那么我不知道你做错了什么。 – tomtom

+0

哦,谢谢!我错过了EJS文件中href的前导斜杠。 –