在 React 中查看/下载 Pdf 文件 - 路由器 4

新手上路,请多包涵

我的项目中的一个文件夹中有一组 pdf 文件。

我需要做的就是创建指向这些 PDF 文件的链接并在浏览器中查看或下载它们。

我使用 React Router 4 和 React 16 以及 create-react-app 引导工具。

无论我如何链接它(链接组件或标签),它仍然会转到我的路由器配置中的最后一个路由。

过去两个小时我一直在谷歌搜索……但没有运气……

有没有办法告诉路由器不要路由 PDF/XLS 文件?

谢谢

原文由 AnarchistGeek 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

我遇到了同样的问题,我认为这是因为 CRA 处理查询的方式:我最终将我的 PDF 文件放在公共文件夹中,并使用以下链接链接到它们:

 {process.env.PUBLIC_URL + '/myfile.pdf'}

作为我的标签的 src。

我猜不是最好的方法,但工作得很好……

原文由 squizz 发布,翻译遵循 CC BY-SA 3.0 许可协议

我尝试了 squizz 的方式,但我发现的问题是,如果您多次单击该链接,它将返回到最后一条路线。

您可以在 src 中创建一个文件夹来保存您的 pdf,并正常链接到它们,例如:

 import pdf from '../files/myfile.pdf'
render () {
    <a href={pdf}>Click here for my pdf</a>
}

唯一的问题是,您会在文件中附加一个散列,因此它会以 myfile.d2e24234.pdf 之类的形式出现。我认为它与文件加载器有关……目前正在努力弄清楚。

编辑

如果您不想使用 src,答案是从 create-react-app 项目中删除 service worker。由于某种原因,它会影响 react-router 对服务器路由的处理。

我在这里做了一个 github 问题来阅读它: https ://github.com/facebookincubator/create-react-app/issues/3608

原文由 Link_Cable 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进