如何使用正则表达式或Express的内置URL处理器正确加载静态文件?
Express应该匹配找到的第一个路由,并像平常一样加载文件。
manifest.json
未正确加载。我正在尝试使用React向我的Express路由器指定在哪里可以找到静态文件。到目前为止,我仅用一种解决方案尝试了一些,但这意味着重复同一行两次。现在,我希望使用正则表达式或Express的内置字符串路由处理器将其转换为对.use()
方法的单次调用。
app.use('/expressadminarea', express.static(__dirname + '/views')
app.use('/expressadminarea/?*', express.static(__dirname + '/views')
app.use(/expressadminarea\/.*|\/expressadminarea/, express.static(__dirname + '/views')
在第二种解决方案中,我告诉Express明确寻找/expressadminarea/< anything or nothing >
或/expressadminarea
。我已经检查了正则表达式,它与我需要的任何路由都匹配,但是由于某些原因,Express不再知道如何加载静态资产,CSS,JS等。返回第一个解决方案以及与之完全相同的路径Express以前一直在搜索以找到现在可以完全加载的静态资产。
yarn/npm build
的修改版本,该版本将运行正常的构建并将文件移动到我的Express服务器正在寻找的指定/views
目录中。 << domain name >>/expressadminarea
,然后再尝试使用自定义.env
文件加载资产并将PUBLIC_URL="/expressadminarea"
放入其中。manifest.json
文件进行任何更改,但它似乎是作为错误弹出的,尽管我不认为这是引起任何问题的原因,因此请参考:{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
答案 0 :(得分:0)
app.use(/\/expressadminarea[\n\r\t\s]*(?:\?.*|$)|\/expressadminarea[\n\r\t\s]*\/.*$/, express.static(__dirname + '/views')