NodeJS不会提供我的静态文件

时间:2016-06-07 17:47:03

标签: node.js express

我遇到了很多我的问题,但是没有一个能为我工作。我的服务器根目录在哪里,如果这两条路径都不起作用?在la-wars>下找不到静态文件。 public> css> file,也不是更亲近的public> css> file

这就是我为此目的使用express的方式:

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

它导致下面的第二个404结果。对于第一个,我有express.static()注释掉并尝试了标记中的绝对路径。

enter image description here

enter image description here

编辑:整个入口点应用:

var express = require('express'),
    app = require('express')(),
    ejs = require('ejs'),
    path = require('path'),
    cookieParser = require('cookie-parser'),
    util = require('util'),
    port = process.env.PORT || 3000,
    user = require('./models/user.js'),
    formidable = require('formidable'),
    router = express.Router();

app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/views');
app.engine('html', require('ejs').renderFile);
app.set('view engine', 'html');
//app.use(require('.middleware/auth.js'));

app.use(require('./routes')(express));

app.listen(port);

2 个答案:

答案 0 :(得分:1)

这取决于你在html页面上放置的url,但是从控制台的错误窗口,我猜这个(注意额外的第一个参数)解决了你的问题:

SELECT IF(
  (SELECT * FROM client_emails ce WHERE ce.client_id = 3),
    (SELECT * FROM client_emails ce WHERE ce.client_id = 3),
    (SELECT * FROM emails)
) 

似乎你同时使用" / public" (对于js)和" public" (对于css)在你的html文件中。上面的代码至少应该修复两个错误中的一个。

电话:

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

表示它可以在“公共场所”中提供您的文件。文件夹直接,所以你可以保留这个,但在html文件中删除" public /"从网址开始,用" /"直接

答案 1 :(得分:0)

您会在slider.js的网址找到http://localhost:3000/js/slider.js - 这就是它的工作原理。