1

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

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

我正在使用快递 3.1.0。

这是我的代码:

应用程序.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...

布局.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...

家玉

extends layout

block content
    p Home
4

2 回答 2

3

当您设置服务器中间件时,它会在根目录中查找请求,除非另有说明,如果您正在“public/styles”中查找样式表,您只需在“/styles”处请求它,以使中间件响应对 /public 的请求将其更改为

app.use('/public', express.static(__dirname + '/public'));
于 2013-02-06T04:17:26.490 回答
0

我尝试使用

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

代替

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

它奏效了。

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

于 2013-02-06T04:19:16.990 回答