我尝试做这样的事情:
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);
资产/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:
我尝试使用http://expressjs.com/ru/4x/api.html#express app.mountPath中描述的挂载应用程序,期望快速安装的子应用程序的所有功能都应该在其中工作,并且因为我想知道的静态问题,我们想知道是否存在局限性这个用例?他们可能是什么?
答案 0 :(得分:1)
您的用例看起来像是Express Router的一个很好的候选者,它是一个孤立的中间件和路由实例":
http://expressjs.com/4x/api.html#router
具体来说,请尝试替换
var app = express();
与
var app = express.Router();
答案 1 :(得分:1)
编辑:你对path.resolve的使用都是错误的。
documentMode

工作
我的猜测是express.static仍在原始路径上运行。所以试试这个
path.resolve('./asset')