Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使express服务于另一个上层目录中的静态文件?_Javascript_Node.js_Express_Model View Controller_Static Files - Fatal编程技术网

Javascript 如何使express服务于另一个上层目录中的静态文件?

Javascript 如何使express服务于另一个上层目录中的静态文件?,javascript,node.js,express,model-view-controller,static-files,Javascript,Node.js,Express,Model View Controller,Static Files,如果我有一个具有以下文件夹结构的nodejs express应用程序: -src -客户 -公开的 -css -js - ... -观点 -服务器 -server.js 既然server.js文件位于index.js根目录的上方,那么如何从server.js文件提供公用文件夹中的静态文件 政府应如何: app.use(express.static(); 看起来像 ----更新--- 通过使用以下方法解决此问题: app.use(express.static(path.join(_dirnam

如果我有一个具有以下文件夹结构的nodejs express应用程序:

-src
-客户
-公开的
-css
-js
- ...
-观点
-服务器
-server.js

  • 既然server.js文件位于index.js根目录的
    上方,那么如何从server.js文件提供公用文件夹中的静态文件
  • 政府应如何:
app.use(express.static();

看起来像

----更新---

通过使用以下方法解决此问题: app.use(express.static(path.join(_dirname,'/../client/public'));

只要这样做,(根据目录结构)

您可以使用path.join()


实际上通过使用以下方法解决了我的问题:


app.use(express.static(path.join(uu-dirname,/../client/public));

为什么要添加重复答案?他提供的答案不正确,他在第一次编辑
app.use('/static',express.static(path.join(u-dirname,'public'))后进行了编辑
我最初对答案的看法和你的不同,我发布了它,所以也许其他人可以决定。祝你愉快!你只添加相同的答案我认为这不起作用,因为
\uu dirname
指的是
服务器
目录。问题是public位于服务器上方,我不能do
app.use(express.static(path.join(uu dirname,../client/public));
path.resolve(u dirname,../client/public/)
也可以工作。例如,使用
res.sendFile
而不是
express.static
app.use(express.static(path.join(__dirname, 'src/client/public'))); 
// http://localhost:3000/hello.html
app.use('/static', express.static(path.join(__dirname, 'src/client/public')))
// http://localhost:3000/static/hello.html
app.use(express.static(path.join(__dirname,'public')));