无论路由如何,如何提供相同的静态文件?

2024-01-21

我有一个反应应用程序。我使用 webpack 进行生产构建。现在我尝试设置一个小型 koa 服务器来为生产环境提供 webpack 生成的静态文件。

所以我这样做了

import Koa from 'koa'
import serve from 'koa-static'

const app = new Koa()

app.use(serve('dist/'))

app.listen(3001)

Where dist/是文件(index.html、bundle 等)所在的目录。 这很好用,但仅适用于路由“/”(localhost:3001 /) 在我的应用程序中,我使用反应路由器,因此我需要通过示例转到 /login (localhost:3001/login)。但当我尝试时,我得到“未找到”。对于 devServer(通过 webpack),这条路线效果很好。我只需要始终服务/dist,无论路线如何。如何做这个白相思木?


一种选择是拦截 Koa 中的 React-router 客户端路由并将其重写为“/”以加载 index.html 和客户端资产。

const REACT_ROUTER_PATHS = [
  '/login',
  '/logout',
  '/other-client-path'
];

app
  .use(async (ctx, next) => {
    if (REACT_ROUTER_PATHS.includes(ctx.request.path)) {
      ctx.request.path = '/';
    }
    await next();
  })
  .use(serve('dist/'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无论路由如何,如何提供相同的静态文件? 的相关文章

随机推荐

  • 如何在容器内保存对不同元素的多个引用?

    考虑这个简单的例子 v Vec
  • mailchimp api 2.0通过php订阅?

    我需要一个如何通过电子邮件地址订阅 mailchimp 时事通讯的示例 请在此处查看新的 api 链接 https bitbucket org mailchimp mailchimp api php https bitbucket org
  • 两种使用局部敏感哈希查找最近邻居的算法,哪一种?

    目前我正在研究如何使用局部敏感哈希来查找最近邻居 然而 当我阅读论文和搜索网络时 我发现了两种执行此操作的算法 1 使用L个哈希表和L个随机LSH函数 从而增加两个相似文档获得相同签名的机会 例如 如果两个文档的相似度为 80 那么它们有
  • 如何将 ImageView 与底部对齐,填充其宽度和高度,并保持其长宽比?

    背景 ImageView 有各种 XML 属性来缩放其内容 以及各种允许放置视图并设置其大小的布局视图 但是 我无法弄清楚如何在某些情况下很好地缩放 imageView 一个例子是将 ImageView 放在底部 例如 frameLayou
  • 通过Java编程语言读取android中的/dev/input/event

    我想记录 Android 手机上完成的所有输入事件 将其保存在某个文件中 然后使用该文件查看用户输入在什么时间发生 AFAIK 我应该调用 dev input event 获取输入事件 请指导我如何通过 Android 活动执行相同的操作
  • 迭代 String Swift 2.0

    我正在尝试在 Swift 游乐场中编写一段非常简单的代码 var word Zebra for i in word print i 但是 我总是在第 3 行收到错误 String 没有名为 Generator 的成员 关于为什么这行不通的任
  • 如何在 TH 表标签中使用 CSS Rotate()

    我需要 CSS 专家的帮助 我正在尝试创建一个简单的 html table 其中列标题 th 标签 的文本旋转 270 度以横向显示 我在锚定标题单元格时遇到问题 因此单元格文本的最左侧部分单独与所有单元格的底部或基线对齐 th tags
  • 响应式地包裹和展开 div

    我有一组 6 个 DIV 我想根据浏览器的屏幕宽度将它们每 X 个 div 包装在一个新的 div 中 所以首先我有 div class blogItem div div class blogItem div div class blogI
  • Android VpnService - 如何检查 VpnService 是否已启动?

    我有两个使用 VpnService 类的应用程序 但同时只能有一个 VPN 连接运行 创建新接口时 现有接口将被停用 我希望新应用程序不要启动 vpnservice 以避免旧接口及其 VPN 连接被停用 所以我想在调用 startServi
  • Java POI 找不到符号 WorkbookFactory

    我正在将 HSSF 模型转换为 XSSF 我到处都会遇到一些小错误 我下载了最新的 POI 并将所有 jar 文件放入其中 并将 apache 包含在我的 java 类中 出现此错误 import org apache poi ss use
  • 当JWT过期时,本地存储中存储的JWT会自动删除吗?

    我已将 JWT 存储在用户浏览器的本地存储中 我已使用 nodejs express 将 JWT 的到期日期设置为 7 天 浏览器会检测到过期日期并自动将其从本地存储中删除吗 或者我的服务器是否必须检查 JWT 并从用户浏览器的本地存储中删
  • 在 R 中使用 rvest 抓取链接时出现空节点

    我的目标是获得 Kaggle 的所有挑战及其标题的链接 我正在使用 rvest 库 但我似乎还没有走多远 当我有几个 div 时 节点是空的 我一开始就尝试在第一个挑战中做到这一点 并且应该能够将其转移到之后的每个条目中 第一个条目的 xp
  • xquery-获取单个父元素中不为空的元素的计数

    请考虑以下 XML div p Text sihdfaif p p p p Text sihdfaif p p p p Text sihdfaif p p Text sihdfaif p p Text sihdfaif p div 现在 我
  • NewLine 转义字符不起作用

    我们知道 n 在 JavaScript 中用于换行 我应该如何将它用于输出 在 for 循环中 str prompt Enter any string for i 0 i
  • NSFileManager 列出不包括目录的目录内容

    有没有办法告诉 NSFileManager contentsOfDirectoryAtURL includingPropertiesForKeys options error 收集目录内容时排除目录名称的方法 我有一个显示文件夹的树视图 并
  • SQLite (3.7.17) 版本太旧。 Active Record 支持 SQLite >= 3.8

    我尝试在 EC2 实例中运行 Rails 6 但遇到以下错误 Your version of SQLite 3 7 17 is too old Active Record supports SQLite gt 3 8 如果重要的话 我的 g
  • CUDA如何获取网格、块、线程大小以及并行化非方阵计算

    我是 CUDA 新手 需要帮助理解一些事情 我需要帮助并行化这两个 for 循环 具体来说 如何设置dimBlock 和dimGrid 以使运行速度更快 我知道这看起来像 sdk 中的向量相加示例 但该示例仅适用于方阵 当我尝试修改 128
  • ipad如何知道键盘已被隐藏

    我正在构建一个 ipad 应用程序 它有一些文本字段 点击时会移动到键盘上方 如果点击 计算 按钮 键盘和视图将向下移动 但如果用户点击 ipad 上的隐藏键盘 键盘右下角键 我的观点仍然很高 那么 我如何以编程方式知道 隐藏键盘 已被点击
  • 如何最终确定嵌套的 Observables?

    请看一下以下尝试以获得更好的理解 this loading true obs pipe finalize gt this loading false If set to false here and the person has child
  • 无论路由如何,如何提供相同的静态文件?

    我有一个反应应用程序 我使用 webpack 进行生产构建 现在我尝试设置一个小型 koa 服务器来为生产环境提供 webpack 生成的静态文件 所以我这样做了 import Koa from koa import serve from