gpt4 book ai didi

node.js - Express 正则表达式路由不再知道如何加载静态资源

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:29 25 4
gpt4 key购买 nike

问题

如何使用 regex 或 Express 的内置 URL 处理器来正确加载静态文件?

预期行为

Express 应匹配它找到的第一条路线并像平常一样加载文件。

实际行为

  • 收到静态文件 MIME 类型不正确的错误。
  • React 的 manifest.json未正确加载。

说明

我正在尝试使用 React 向我的 Express 路由器指定在哪里查找静态文件。到目前为止,我已经尝试了一些只有一种解决方案的方法,但这意味着基本上同一行重复两次。现在,我希望将其变成对 .use() 的单个调用使用正则表达式或 Express 的内置字符串路由处理器的方法。

当前工作解决方案

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 之前搜索的静态资源现在加载完全正常的路径。

我收到的确切错误是:

Error Message

注意事项

  • 我正在使用 React 来获取 View
    • 构建流程很奇怪,但我正在运行 yarn/npm build 的修改版本这将运行正常的构建并将文件移动到我指定的 /views目录,我的 Express 服务器正在寻找的目录。
    • 此构建目录未修改,因此所有内部文件/目录与 React 的正常构建相同。
    • 我已经指定 React 应该开始查看 << domain name >>/expressadminarea在尝试使用自定义 .env 加载资源之前文件并放置PUBLIC_URL="/expressadminarea"里面。
    • 我不记得对 manifest.json 做过任何更改文件,但它似乎作为错误弹出,尽管我不认为这是任何问题的原因,因此作为引用:

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"
}

最佳答案


app.use(/\/expressadminarea[\n\r\t\s]*(?:\?.*|$)|\/expressadminarea[\n\r\t\s]*\/.*$/, express.static(__dirname + '/views')

关于node.js - Express 正则表达式路由不再知道如何加载静态资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54413242/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com