Node.js Express静态文件夹未正确加载

Node.js Express静态文件夹未正确加载,node.js,angular,express,static,Node.js,Angular,Express,Static,我正在构建的节点应用程序有问题 应用程序文件夹结构: 控制器//控制器 助手//助手 config//一些配置文件 public//存储一个内置的应用程序 应用程序URL 1:www.domain.com 应用程序URL 2:www.other.com/myapps/app1 这就是我如何设置静态文件夹来加载资产: app.use(express.static(__dirname + '/public')); 这是我访问静态文件夹中文件的方式: URL1: www.domain.com/

我正在构建的节点应用程序有问题

应用程序文件夹结构:

  • 控制器//控制器
  • 助手//助手
  • config//一些配置文件
  • public//存储一个内置的应用程序
应用程序URL 1:www.domain.com 应用程序URL 2:www.other.com/myapps/app1

这就是我如何设置静态文件夹来加载资产:

app.use(express.static(__dirname + '/public'));
这是我访问静态文件夹中文件的方式:

URL1: www.domain.com/assets/main.js
URL2: www.another.com/myapps/app1/assets/main.js
现在的问题是,如果我在URL1上部署应用程序,一切都会完美工作。但是将应用程序部署到URL2会给我带来一些问题

无法在URL2上的应用程序上访问静态文件。我得到404(不能得到…)

URL2上运行着多个应用程序,这就是为什么我使用上下文来分隔这些应用程序。 我最初的想法是,由于URL2上url的附加上下文,express无法正确设置静态文件夹


这可能是因为没有正确设置静态文件夹吗?

express.static
从某处接收数据,并将此数据应用于域的根目录。 实际上,通过添加一些结构,您可以将文件放在另一个文件夹中。
在您的案例中,set
app.use(express.static(uu dirname+/public))并将资产放入app1中,然后放入myapps文件夹中。所有这些都应该放在公共文件夹中,你能再解释一下吗。如果express.static将此应用于根,是否有方法将其更改为将数据应用于上下文(/myapps/app1/),感谢您的响应。我想我没有提到/myapps/app1不是文件夹。这是一个映射到我的应用程序的url。因此,如果您访问www.other.co.za/myapps/app1,有一些网络路由规则可以将请求传递给我的应用程序。这个url上有三个应用程序:www.other.com/myapps/app1/=这是我的应用程序www.other.com/myapps/app2/=这里运行着另一个应用程序www.other.com/=这里运行着另一个应用程序
www.another.com/myapps/app1/assets/main.js // returns 404
www.domain.com/assets/main.js // returns the JavaScript file.