gpt4 book ai didi

javascript - NodeJS 很难使用 Express.js 提供静态内容

转载 作者:行者123 更新时间:2023-12-03 06:11:52 25 4
gpt4 key购买 nike

我在 Windows 10 开发机器上运行了一个简单的 NodeJS 和 Express 服务器

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

app.use(express.static('app'));
app.use('/bower_components', express.static('bower_components'));

app.listen(3000, function () {
console.log("Listening on :3000");
});

这是可行的,但是当我尝试将其上传到我的 Linux (Ubuntu 14.04) 机器上时,只有直接位于 /app 下的文件才会得到服务,而子文件夹中的任何文件都不会被提供。

在 Linux 计算机上,我注意到我正在运行 Node 版本 v0.10,因此我更新到 v4.5.0。我的 Windows 机器运行 v4.4.4

我觉得这可能与权限有关,所以我尝试设置这些,但没有成功。

文件结构如下所示

├───api
├───app
│ ├───assets
│ │ ├───css
│ │ └───images
│ └───scripts
│ ├───auth
│ ├───directives
│ ├───filters
│ ├───home
│ ├───i18n
│ └───services
├───bower_components

有人遇到过同样的问题吗?

最佳答案

我认为你把所有东西都很好地放在文件中,所以唯一的问题是,对于像你想要的那样的nodeJS服务来说,这可能是痛苦的,那就是没有指定路径。

https://expressjs.com/en/starter/static-files.html

如果你这样做 app.use(express.static('app')); 目录 app 会被注入(inject)到 / 目录(或极端情况下nodeJs安装的执行文件夹)。我唯一想到的是在express.static之前添加__dirname + '/app': app.use(__dirname + '/app',express.static('app' ));

__dirname是模块作用域中的一个 nodeJS 变量,包含当前执行脚本所在目录的名称

<小时/>

如果这正在改变某些东西,请尝试此来匹配所有内容:What is the difference between __dirname and ./ in node.js?

关于javascript - NodeJS 很难使用 Express.js 提供静态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39279593/

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