Express 3 - 提供静态脚本/样式 - 错误:无法加载资源(404)

时间:2013-02-06 04:12:01

标签: node.js static webserver express http-status-code-404

我是节点和服务器端开发的新手,并且今天开始关注它,所以请关注我的问题。我在之前的帖子中找到了合适的答案,但不知何故,每个建议的解决方案都受到了许多用户的批评。

由于以下错误,我无法提供静态脚本/样式: 无法加载资源:服务器响应状态为404(未找到)

我使用快递3.1.0。

这是我的代码:

app.js

var express = require('express');
var app = express();

var routes = require('./routes');

app.configure(function () {
    app.set('view engine', 'jade');
    app.use(express.static(__dirname + '/public'));
});

app.get('/', routes.home);
app.get('/about', routes.about);
app.get('/blog', routes.blog);
app.get('/faq', routes.faq);
app.get('/terms', routes.terms);
app.get('/privacy', routes.privacy);
app.get('/jobs', routes.jobs);
app.get('/press', routes.press);

app.listen(8080);

index.js(路线)

exports.home = function(req, res){
    res.render('home', { title: "Home"});
};

exports.about = function(req, res){
    res.render('about', { title: "About" });
};

etc...

layout.jade

doctype 5
html
    head
        title= title
        link(rel='stylesheet', href='public/styles/bootstrap.css')
    body
        block content
        br
        a(href='../') Home
        br
        a(href='../about') About
        br
etc...

home.jade

extends layout

block content
    p Home

2 个答案:

答案 0 :(得分:3)

当您设置服务器中间时,它会在根目录中查找请求,除非另外指定,如果您要在“public / styles”中查找样式表,则只需“/ styles” 中间回答请求/ public将其改为

app.use('/public', express.static(__dirname + '/public'));

答案 1 :(得分:0)

我尝试使用

app.use('/public', express.static(__dirname + '/public'));

而不是

app.use(express.static(__dirname + '/public'));

它有效。

但是根据这篇文章中的第一个答案:express.js not serving my image它不被认为是好的。我不明白为什么?还有什么是更好的解决方案?