reactjs - 如何在 Gatsby JS 中渲染 PDF?
问题描述
您好到目前为止,我的一个组件中有此代码
export default App;
return (
<Section id="home">
<Overlay
style={{height: `${this.state.width > 500 ? this.state.height : 350}px`}}>
<HeadingBox className="parallax-hero-item animate">
<SubHeading className="parallax-hero-item">Hello, I'm</SubHeading>
<Heading className="parallax-hero-item">
<Glitch text="Julius Oh" />
</Heading>
<Type className="parallax-hero-item">
<Typewriter
options={{
strings: [
'Full Stack Developer',
'Problem Solver',
'Programming Enthusiast',
],
autoStart: true,
loop: true,
}}
/>
</Type>
<Resume
rel="noopener noreferrer"
href={withPrefix('./resume.pdf')}
target="_blank">
Download Resume
</Resume>
</HeadingBox>
{this.shapes()}
</Overlay>
</Section>
);
但是,我从 Gatsby 那里收到一个错误 /resume.pdf 上还没有页面
在您的站点目录 src/pages/resume.pdf.js 中创建一个 React.js 组件,此页面将自动刷新以显示您创建的新页面组件。
解决方案
您必须指向您的 PDF。您可以像其他组件一样导入它,也可以使用静态文件夹。
使用静态文件夹:
创建一个以
/static
项目根目录命名的文件夹,然后将 PDF 放在那里。当您构建站点时,此文件夹会以相同的内部结构“克隆”,因此其中的所有内容都将保留相对路径。一旦你创建了一个结构,如/static/pdfName.pdf
:<Resume rel="noopener noreferrer" href={withPrefix('./resume.pdf')} target="_blank">
由于它位于
/static
文件夹下,因此您以前的路径将起作用。如果您像这样/static/pdf/pdfName.pdf
更新路径,则还需要更新组件中的路径。像组件一样导入:
import PDF from 'your/pdf/path/pdfName.pdf' <Resume rel="noopener noreferrer" href={PDF} target="_blank">
推荐阅读
- r - 如何在 ggplot 中绘制 3 个变量 separarelt?
- amazon-web-services - 如何使用 BashOprator 在 Airflow 中使用 Airflow AWS 连接凭证将文件从 AWS s3 存储桶传输到 GCS
- firebase - 注册后用户数据未存储在 Firestore 数据库中
- python - 如何从网络导入数据作为照片?
- ios - Flutter IOS 应用程序在运行时卡在启动屏幕
- json - 我的 Ajax 脚本不适用于数据类型 json
- java - 使用 OAS3 将对象放入 REST 请求标头中
- javascript - 我可以在图表 js 中不均匀的绘图点之间创建均匀的间距吗?
- node.js - 如何使用 NodeJS 登录 Azure AD?
- python - 比较两个文件以打印与单词匹配的行