Express.js 无法在 Heroku 上提供所有静态文件

Express.js 无法在 Heroku 上提供所有静态文件

在那里,我在 heroku 上使用 node.js 和 express 时遇到了一点问题。我有一个 node.js 服务器,用于加载我的 index.html 页面和其他资源:

process.env.PWD = process.cwd();
var express = require("express");
var fs = require("fs-extra");
var app = express();
app.use(express.static(process.env.PWD+"/Anos"));
app.use(process.env.PWD +"/Applications", express.static(process.env.PWD + '/Anos/Applications'));

app.get(process.env.PWD+"/Anos",function(req,res) {
});
console.log("hello bitche");
var server = app.listen(process.env.PORT || 8080,function() {
    console.log("Project Alexander listening on port 8080!");
});
global.io = require("socket.io").listen(server);
var login = require("./local_modules/login.js");
var saveFiles = require("./local_modules/fileFolderSave.js");
global.io.sockets.on("connection",function(client) {
    login(client,global.io,fs,process.env.PWD);
    saveFiles(client,global.io,fs,process.env.PWD);
});

这在本地主机上运行良好,但当我从 dropbox 将其部署到 heroku 时,它只会加载某些内容,例如 css 和 js 文件,所有这些都在子目录中。未加载的内容是来自应用程序文件夹中的文件夹的 icon.png 文件。目录结构:

Anos/
  index.html
  css/
     Taskbar/
     Desktop/
     Infopane/
  js/
     Taskbar/
     Desktop/
     Infopane/
  Applications/
     App1/
        icon.png
     App2/ etc..
        icon.png
  userData/
  users/
  images/

应用程序这里) (类型

一个

然后单击“登录”并检查控制台是否存在 404 错误。如果您还有其他需要,请告诉我。有什么想法吗?我可以更改什么来消除这些错误并正确加载所有内容?提前致谢!

错误: 图像

答案1

我曾经遇到过这个问题。我解决这个问题的方法是将我的公共文件夹重命名为 public,并将其设置为 public,如下所示

var path = require('path')

process.env.PWD = process.cwd();
app.use(express.static(path.join(process.env.PWD, 'public')));

我希望这有帮助

相关内容