微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 学习节点 – Express公用文件夹不工作

所以我是新来的节点,并尝试学习如何使用快速库。但是,我想知道的问题是为什么我的/ public文件夹中的文件似乎不被用作静态内容

这是我的代码

var http = require('http');
var port = process.env.port || 1337;
var express = require('express');
var handlebars = require('express3-handlebars');
var path = require('path');

var application = express();

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

application.engine('handlebars',handlebars({ defaultLayout: 'main' }));

application.get('/',function(req,res){
    res.render('index.handlebars',{ someProp: 3 });
});

application.listen(port);

和我的目录结构:

/
  - server.js (the above referenced file)
  / Views
    - index.handlebars
    / Layouts
      - main.handlebars
  / public
    - ServeMe.txt

我的理解是application.use(express.static(path.join(__ dirname,’public’)));应该配置服务器以响应公共文件夹下的该资源的任何请求(如果找到)。我究竟做错了什么?有趣的是,配置handlebars作为视图引擎比将该公用文件夹工作= D更容易

编辑:我要求的完整网址:
HTTP://本地主机:1337 /大众/ serveme.txt

我已经尝试了区分大小写(这应该是一个非问题),也没有工作。

解决方法

The full URL I am trying to request: http://localhost:1337/public/serveme.txt

这是你的问题您指定为静态内容的目录中的任何内容都可以直接从基本URL获得。您需要请求http:// localhost:1337 / serveme.txt。

如果您只想从/ public提供静态文件,您可以传递一个字符串作为第一个参数:

application.use("/public",express.static(path.join(__dirname,'public')));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐