系统相关
首页 > 系统相关> > linux – Node.js Express静态资产的区分大小写

linux – Node.js Express静态资产的区分大小写

作者:互联网

如何设置express.static的路由是否区分大小写?例如Express是否应该通过提供名为Image.jpeg的本地文件来处理对image.jpeg的请求.

调用express.Router([options])时有一个caseSensitive选项(如http://expressjs.com/en/4x/api.html所定义)但是当调用express.static(root,[options])时,这不是一个选项(同一链接上的文档).

默认情况下,我得到的不同行为是将不区分大小写的卷(/ Mac OS X)的静态文件提供给区分大小写的卷(/ Linux).这导致我们的应用程序中出现不一致的错误 – 在Mac OS X下本地不匹配的情况会在本地运行但在部署到Linux服务器时会失败.

解决方法:

我还获得了一些简单替代解决方案的建议:

Set a policy that all your static files and paths should be in lowercase.

Enforce the policy on the files by adding a build step that checks them.

Enforce the policy on requests by adding some middleware that rejects requests to the static folder if any uppercase characters are found in the path.

标签:linux,node-js,express,case-sensitive,macos
来源: https://codeday.me/bug/20190702/1354631.html