Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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 `如果app-是子应用程序,则app.use(express.static`似乎不起作用_Javascript_Node.js_Express_Subapplication - Fatal编程技术网

Javascript `如果app-是子应用程序,则app.use(express.static`似乎不起作用

Javascript `如果app-是子应用程序,则app.use(express.static`似乎不起作用,javascript,node.js,express,subapplication,Javascript,Node.js,Express,Subapplication,我尝试这样做: var main = express(); main.use(express.static(path.resolve('./asset'))); main.route('someroute', someHandle); var app = express(); app.use(express.static(path.resolve('./asset'))); app.route('someroute', someHandle); main.use('/app', app); a

我尝试这样做:

var main = express();
main.use(express.static(path.resolve('./asset')));
main.route('someroute', someHandle);
var app = express();
app.use(express.static(path.resolve('./asset')));
app.route('someroute', someHandle);
main.use('/app', app);
assets
/asset/someasset.js
运行良好,但
/app/asset/someasset.js
未返回(404),路径解析到正确的文件夹

我尝试了
app.use('/app',express.static(path.resolve('./asset'));
-不起作用,但
main.use('/app',express.static(path.resolve('./asset'));
-起作用

express.static
与已安装的子应用程序一起使用是否有一些限制

UPD:


我尝试使用app.mountPath中所述的挂载应用程序,希望express mounted as sub application的所有功能都能在其中工作,我无意中发现了静态问题,我想知道这个用例中是否存在限制?它们可能是什么?

您的用例看起来像是express Router的一个很好的候选,它是“中间件和路由的独立实例”:

具体来说,试着更换

var app = express();


您的用例看起来很适合Express Router,它是“中间件和路由的独立实例”:

具体来说,试着更换

var app = express();


您的用例看起来很适合Express Router,它是“中间件和路由的独立实例”:

具体来说,试着更换

var app = express();


您的用例看起来很适合Express Router,它是“中间件和路由的独立实例”:

具体来说,试着更换

var app = express();


编辑:您对path.resolve的使用完全错误


path.resolve('./asset')
编辑:您对path.resolve的使用完全错误


path.resolve('./asset')
编辑:您对path.resolve的使用完全错误


path.resolve('./asset')
编辑:您对path.resolve的使用完全错误



path.resolve(“./asset”)
好吧,因为你正在使用一个express应用程序作为另一个express应用程序的中间件。我不工作。看看中间件:@Peyman,这是否意味着当使用express作为中间件时,它不能使用其他中间件?我没有发现你发布的链接这是一个好问题,我不知道,我想你可能可以,但什么我敢肯定的是,你不能使用main.use('/app',app)。由于应用程序是一个express应用程序实例,而它应该是一个中间件。express.static是一个中间件。express应用程序本身就是中间件,仅供参考@PeymanYes,我很好地更新了这个问题,因为您正在使用一个express应用程序作为另一个express应用程序的中间件。我不工作。看看中间件:@Peyman,这是否意味着在使用expr时ess作为一个中间件,它不能使用其他中间件吗?我没有发现你在链接后给出了这是一个好问题,我不知道,我认为你可能能够,但我确信你不能使用main.use('/app',app)。由于应用程序是一个express应用程序实例,而它应该是一个中间件。express.static是一个中间件。express应用程序本身就是中间件,仅供参考@PeymanYes,我很好地更新了这个问题,因为您正在使用一个express应用程序作为另一个express应用程序的中间件。我不工作。看看中间件:@Peyman,这是否意味着在使用expr时ess作为一个中间件,它不能使用其他中间件吗?我没有发现你在链接后给出了这是一个好问题,我不知道,我认为你可能能够,但我确信你不能使用main.use('/app',app)。由于应用程序是一个express应用程序实例,而它应该是一个中间件。express.static是一个中间件。express应用程序本身就是中间件,仅供参考@PeymanYes,我很好地更新了这个问题,因为您正在使用一个express应用程序作为另一个express应用程序的中间件。我不工作。看看中间件:@Peyman,这是否意味着在使用expr时ess作为一个中间件,它不能使用其他中间件吗?我没有发现你在链接后给出了这是一个好问题,我不知道,我认为你可能能够,但我确信你不能使用main.use('/app',app)。由于应用程序是一个express应用程序实例,而它应该是一个中间件。express.static是一个中间件。express应用程序本身是中间件,fyi@PeymanYes,我更新了问题感谢答案,但我尝试使用app.mountPathThank中所述的已安装应用程序来获得答案,但我尝试使用app.mountPathThank中所述的已安装应用程序,but我尝试使用app.mountpath中所述的挂载应用谢谢您的回答,但我尝试使用app.mountpath中所述的挂载应用我尝试了,id没有帮助,但确实
main.use(express.static(path.resolve('./app/asset'));
可以工作。问题是为什么它不能与子应用(app)一起工作这是你的问题吗?鉴于你原来的帖子,我认为这个答案是正确的(而且是密切相关的)。你可能想看看
\uu dirname
“全球“还有。someasset.js是否同时存在于/asset和/app/asset文件夹中?如果是这样,考虑到您的代码的顺序,/asset中的静态文件将首先匹配。我尝试过,id没有帮助,但确实
main.use(express.static(path.resolve('./app/asset'));
可以工作。问题是为什么它不能与subapp(app)一起工作?”这是你的问题吗?考虑到你原来的帖子,我认为这个答案是正确的(而且是密切相关的)。你可能想看看
\uu dirname
“global”还有。someasset.js是否同时存在于/asset和/app/asset文件夹中?如果是这样,根据您的代码顺序,/asset中的静态文件将首先匹配。我尝试了一下,id没有帮助,但确实
main.use(express.static(path.resolve('./app/asset'));
可以工作。问题是为什么它不能与subapp(app)一起工作这是你的问题吗?考虑到你原来的帖子,我认为这个答案是正确的(而且有密切关系)。你可能还想看看
\uu dirname
“global”。someasset.js是否同时存在于/asset和/app/asset文件夹中?如果是这样,考虑到你的代码排序方式,/asset中的静态文件将首先匹配我尝试了t