【发布时间】:2021-02-27 01:06:02
【问题描述】:
在 Windows 10 上本地创建的 Meteor 应用程序使用 Meteor Up 部署到 Ubuntu VPS。该应用程序正在运行并可从浏览器185.148.129.235 访问。
服务器代码读取位于“/var/www/html/Audio”目录中的文件名,Apache 将其内容提供给客户端浏览器,但请注意以下错误。
这里还有 mup.js 文件,非常感谢任何帮助,以便能够修复此错误并读取所述位置中的文件名。
module.exports = {
servers: {
one: {
host: '185.148.129.235',
username: 'root',
password: '.....',
opts: {
port: 7822
}
}
},
app: {
name: 'audio',
path: '../',
servers: {
one: {},
},
buildOptions: {
serverOnly: true,
},
env: {
ROOT_URL: 'http://185.148.129.235.static.a2webhosting.com',
MONGO_URL: 'mongodb://mongodb/meteor',
MONGO_OPLOG_URL: 'mongodb://mongodb/local',
},
docker: {
image: 'abernix/meteord:node-12-base',
},
enableUploadProgressBar: true
},
mongo: {
version: '3.4.1',
servers: {
one: {}
}
},
};
PS C:\PATH-TO-APP\.deploy> mup logs -f --tail=50
[185.148.129.235]=> Starting meteor app on port:3000
[185.148.129.235]Error: ENOENT: no such file or directory, scandir '/var/www/html/Audio'
[185.148.129.235] at Object.readdirSync (fs.js:955:3)
[185.148.129.235] at objTitlesBuild (server/main.js:22:15)
[185.148.129.235] at server/main.js:9:3
[185.148.129.235] at Function.time (/built_app/programs/server/profile.js:273:30)
[185.148.129.235] at /built_app/programs/server/boot.js:415:15
[185.148.129.235] at /built_app/programs/server/boot.js:465:7
[185.148.129.235] at Function.run (/built_app/programs/server/profile.js:280:14)
[185.148.129.235] at /built_app/programs/server/boot.js:463:13 {
[185.148.129.235] errno: -2,
[185.148.129.235] syscall: 'scandir',
[185.148.129.235] code: 'ENOENT',
[185.148.129.235] path: '/var/www/html/Audio'
[185.148.129.235]}
【问题讨论】:
-
似乎是应用程序代码中的一个问题。您在阅读之前是否检查过该文件夹是否存在?你也设置权限正确吗?
-
另外 - mup 在 docker 容器中运行您的应用程序。你确定它包含给定路径下的文件还是它们实际上位于主机操作系统文件系统中
-
"/var/www/html/Audio" 是 Apache 将其音频内容提供给客户端浏览器的地方,我不知道是 docker 配置的问题还是服务器代码中的路径问题。如果是后者,那么我需要知道将其包含在路径中的 docker 位置。我迷路了。
-
本地开发机器上的文件包含在哪里?
-
在本地开发机器上,音频文件位于
C:\xampp\htdocs\Audio,这是apache服务器为浏览器客户端提供音频文件的地方。