在Gatsby中链接本地.html文件失败,求技术解决方案
解决Gatsby链接独立HTML文件的404问题
核心错误修正
你把static文件夹放在了src目录下,这不符合Gatsby的规则——static文件夹必须放在项目根目录(和src、package.json同级),否则构建时不会被复制到public目录,自然找不到文件。
具体解决步骤
- 调整文件结构
- 将
src/static文件夹移到项目根目录,删除原src/static - 把你的HTML文件改名(比如改成
external-page.html),避免和Gatsby生成的主index.html冲突,然后放到根目录的static文件夹里
- 将
- 修改链接代码
使用正确路径,并添加新标签页打开的属性:<a href="/external-page.html" target="_blank" rel="noopener noreferrer">go to external page</a> - 验证效果
- 开发环境:启动项目后访问
http://localhost:8000/external-page.html,确认能正常加载 - 生产环境:执行
gatsby build后,检查public目录下是否有external-page.html,部署后访问对应路径即可
- 开发环境:启动项目后访问
额外说明
- Gatsby会把根目录
static下的文件直接复制到构建后的public根目录,所以路径不需要加/static/前缀 - 不要用
index.html作为独立HTML的文件名,否则会被Gatsby生成的主页面覆盖,导致访问异常
内容的提问来源于stack exchange,提问作者Akke
相关产品推荐
相关产品推荐

