我已经将我的代码简化为我可以做的最简单的express-js应用程序:

var express = require("express"),
    app = express.createServer();
app.use(express.static(__dirname + '/styles'));
app.listen(3001);

我的目录是这样的:

static_file.js
/styles
  default.css

然而,当我访问http://localhost:3001/styles/default.css时,我得到以下错误:

Cannot GET / styles /
default.css

我使用express 2.3.3和节点0.4.7。我做错了什么?


当前回答

这个方法对我很管用

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

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

app.use('/shopping-cart/javascripts',express.static(path.join(__dirname, 'public/javascripts')));

app.use('/shopping-cart/stylesheets',express.static(path.join(__dirname, 'public/stylesheets')));

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

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

其他回答

我只是尝试这个代码和工作

const exp = require('express');
const app = exp();

app.use(exp.static("public"));

和工作,

工作前(未工作):

const express = require('express');
const app = express();
app.use(express.static("public"));

试试

在你的server.js中:

var express   =     require("express");
var app       =     express();
app.use(express.static(__dirname + '/public'));

你已经分别声明了express和app,创建一个名为“public”的文件夹或其他你喜欢的文件夹,但你可以访问这些文件夹。在模板src中,您已经添加了从/public的相对路径(或静态文件的文件夹destiny的名称)。当心路上的栏杆。

我找到我的css文件,并添加一个路由到它:

app.get('/css/MyCSS.css', function(req, res){
  res.sendFile(__dirname + '/public/css/MyCSS.css');
});

那么它似乎起作用了。

我也有同样的问题。我已经解决了以下代码的问题:

app.use('/img',express.static(path.join(__dirname, 'public/images')));
app.use('/js',express.static(path.join(__dirname, 'public/javascripts')));
app.use('/css',express.static(path.join(__dirname, 'public/stylesheets')));

静态请求示例:

http://pruebaexpress.lite.c9.io/js/socket.io.js

我需要一个更简单的解决方案。它存在吗?

我在我的应用程序中使用引导CSS, JS和字体。我在应用程序的根目录中创建了一个名为asset的文件夹,并将所有这些文件夹放在其中。然后在服务器文件中添加以下一行:

app.use("/asset",express.static("asset"));

这一行使我能够从/asset路径前缀(例如:http://localhost:3000/asset/css/bootstrap.min.css)加载资产目录中的文件。

现在在视图中,我可以简单地包括CSS和JS如下:

<link href="/asset/css/bootstrap.min.css" rel="stylesheet">