gpt4 book ai didi

reactjs - 在 github 页面上部署后 Gatsby Links 失败

转载 作者:行者123 更新时间:2023-12-04 09:41:19 27 4
gpt4 key购买 nike

我在 Gatsby 中创建了网站(我的第一个),但遇到了 的问题 Gatsby 的链接 在已部署的页面上。
我正在使用 gatsby-starter-react-bootstrap 顾名思义,其中包括 gatsby 和 react-bootstrap :)
我在 中找到了链接NavDropdown.Item 这是 react-bootstrap 的一个元素。

import React from "react"
import {Link} from "gatsby"

import {Navbar, Nav, NavDropdown, Image} from "react-bootstrap"

import Logo from "../images/Logo_White_RGB_200x42px.png";
import customer_logo from "../images/customer_logo.svg";

const CustomNavbar = ({pageInfo}) => {

return (
<>
<Navbar variant="dark" expand="md" id="site-navbar">
{/* <Container> */}
<Link to="/" className="link-no-style">
<Navbar.Brand as="span">
<Image src={Logo} />
</Navbar.Brand>
</Link>
<Navbar.Toggle aria-controls="basic-navbar-nav" />
<Navbar.Collapse id="basic-navbar-nav">
<Nav className="mr-auto" activeKey={pageInfo && pageInfo.pageName}>
<NavDropdown title="Project" id="collapsible-nav-dropdown">
<NavDropdown.Item><Link to="360-viewer" activeClassName="active">360 view</Link></NavDropdown.Item>
<NavDropdown.Item><Link to="map" activeClassName="active">map</Link></NavDropdown.Item>
<NavDropdown.Item><Link to="description" activeClassName="active">description</Link></NavDropdown.Item>
</NavDropdown>
</Nav>
<Nav className="ml-auto">
<Navbar.Text>
Customer: <a href="https://customer.com/"> Customer Group</a> <Image className="customer-logo" src={customer_logo}/>
</Navbar.Text>
</Nav>
</Navbar.Collapse>
{/* </Container> */}
</Navbar>
</>
)
};

export default CustomNavbar

对于部署,我使用 https://www.npmjs.com/package/gh-pages .

在 localhost:8000 本地运行的开发版本完全正常。下拉菜单和所有链接都可以正常工作。
当我尝试将版本用于生产时,路由停止工作 - gatsby build 创建了 index.html 所在的公用文件夹。当我在 github 页面上部署页面时,路由也不起作用。

概括:
  • 开发版工作正常
  • 生产和部署版本有问题:
  • 当我点击下拉菜单时,下拉菜单没有打开,并且 # 符号被添加到 URL 地址 - www.website.com/#
  • 当我添加到网站地址 360-viewer 时,页面正在打开,但是当我再次单击下拉菜单时,# 符号再次添加到 URL -www.website.com/360-viewer/#
  • 最佳答案

    您的应用程序使用 Github Pages 在生产中中断,因为与 localhost 不同,it's not served from the root URL .要解决此问题,您可以让 Gatsby 知道您的应用程序将从哪个路径获得服务。然后 Gatsby 将为您修复路由和链接。
    gatsby-config.js :

    module.exports = {
    pathPrefix: "/your-repo-name",
    }
    然后添加 --prefix-paths标记到您的构建命令: gatsby build --prefix-paths他们在他们的文档中对此进行了更多解释: https://www.gatsbyjs.org/docs/how-gatsby-works-with-github-pages/#deploying-to-a-path-on-github-pages

    关于reactjs - 在 github 页面上部署后 Gatsby Links 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62318100/

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