javascript - Express.js 静态服务不工作

标签 javascript node.js twitter-bootstrap express pug

我正在尝试将 Bootstrap 主题应用于 Jade 生成的文件,但它说它无法获取文件。

主要 JS 文件:

var express = require('express')
app = express();

app.set('views', __dirname + '/templates');

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

app.get('/', function(req, res){res.render('index.jade', {title: 'stuff'});});

var port = Number(process.env.PORT || 5000);
app.listen(port, function () {
  console.log('Listening on ' + port);
});

index.jade:

link(rel='stylesheet', href='public/lumen.min.css')
h1 
   a(href='http://example.com') test
p this is a test

有什么解决方案吗?

最佳答案

href='public/lumen.min.css' 正在尝试访问位于 __dirname + public/public/lumen.min.css 的文件(注意双 public)。将该行更改为:

link(re='stylesheet', href='lumen.min.css')

您不需要将公共(public)目录添加到您的 src/href 属性中,express 足够聪明,可以解决这个问题。

有关使用 express.static 的更多示例,请查看 docs .

关于javascript - Express.js 静态服务不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22585086/

相关文章:

javascript - $.getJSON 和 $.ajax 无法返回 JSON 对象

javascript - Express 表单验证路由器中的意外行为

javascript - 为什么+=(加法赋值,加上等于)在 Node 中这么慢?

javascript - joinmonster 不是一个函数 - GraphQL

javascript - 使用带有 async/await 的 mongoose promise

javascript - jQuery keyup 事件不设置 event.shiftKey

javascript - 为什么我的更改复选框不适用于 js 文件,但适用于控制台?

javascript - 单击时 Bootstrap 日历日期时间选择器不会加载

javascript - 当我从 javascript 生成相同的代码时出现填充

css - 在容器中 Bootstrap 4 个导航栏元素,其中一个元素在容器外右对齐