【问题标题】:Express Static not Serving FilesExpress Static 不提供文件
【发布时间】:2016-05-29 03:02:31
【问题描述】:

我知道其他人就该主题提出了问题,但我无法通过阅读答案找出我的问题。

我希望我的 Node.js 应用程序为我的文件提供服务,它看起来好像页面正在向正确的路径请求 css 文件,但它仍然无法正常工作。

HTML 正在使用链接标签 <link rel="stylesheet" href="../public/css/register.css">http://localhost:3000/public/css/register.css 请求 css 文件

app.js

//Load modules
var express = require('express');
var mongodb = require('mongodb');
var mongoose = require('mongoose');
var app = express();
var router = express.Router();
var fs = require('module');
var path = require('path');

//Load body-parser and other middleware
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: false }));

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

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

//Routes
app.use('/users', users);


//Run Server
app.listen(3000, function(){
  console.log("Listening on Port 3000");
});

users.js

//Mongoose Setup
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
mongoose.connect("mongodb://MY_DB");
var path = require('path');
var appDir = path.dirname(require.main.filename);
var bodyParser = require('body-parser')

//Express Setup
var express = require('express');
var router = express.Router();
var app = express();

var bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());


//Define Schema
var userSchema = new Schema({
  name: String,
  email: String,
  password: String
});
var User = mongoose.model('User', userSchema);

//Routes
router.get('/register', function(req, res){
  res.sendFile(appDir + "/views/register.html");
})

router.post('/register', function(req, res) {
  console.log('Post Request')
  var newUser = new User({
    name: req.body.name,
    email: req.body.email,
    password: req.body.password
  })
  newUser.save();
  res.redirect('/users/register');
})

//Exports
module.exports = router;

当前文件结构

/MAIN
    /public
        /css
            register.css
    /routes
        users.js
    /views
        register.html
    package.json

【问题讨论】:

  • 你打错了,是/public,不是/publiic
  • 修复了,还是不行

标签: javascript node.js express


【解决方案1】:

愚蠢的问题,我不得不将源设置为<link rel="stylesheet" href="/css/register.css"> 而不是<link rel="stylesheet" href="../public/css/register.css">

【讨论】:

    【解决方案2】:

    你的css文件链接应该是/public/....而不是../public/..

    【讨论】:

    • 不适用于
    • 哎呀!是的,只是 /css,看来你还是想出来了 ?
    猜你喜欢
    • 2021-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    相关资源
    最近更新 更多