我是节点和服务器端开发的新手,并且今天开始关注它,所以请关注我的问题。我在之前的帖子中找到了合适的答案,但不知何故,每个建议的解决方案都受到了许多用户的批评。
由于以下错误,我无法提供静态脚本/样式: 无法加载资源:服务器响应状态为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
答案 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它不被认为是好的。我不明白为什么?还有什么是更好的解决方案?