gpt4 book ai didi

node.js - 学习 Node - Express 公共(public)文件夹不工作

转载 作者:IT老高 更新时间:2023-10-28 22:07:32 25 4
gpt4 key购买 nike

所以我是 node 的新手,并试图学习如何使用它的 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'))); 应该配置服务器以响应公共(public)文件夹下的任何请求如果找到该资源。我究竟做错了什么?有趣的是,将 Handlebars 配置为 View 引擎比让这个公用文件夹工作更容易=D

编辑:我试图请求的完整 URL:http://localhost:1337/public/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')));

关于node.js - 学习 Node - Express 公共(public)文件夹不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24433733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com