链接不适用于 Next.js 和 Github Pages

FlyLike企鹅

我最近关注了一个关于使用 React 和 Next.js 构建单页投资组合的教程,它在本地开发中运行良好。

但是,当我将它部署到 Github 页面时,内部链接停止工作。

    <PrefixedLink href="#about">
      <NavLink>About Me</NavLink>
    </PrefixedLink>

我已经尝试了以下在线建议:添加 next.config.js(这确实修复了从公共文件夹加载图像) - 我的看起来像这样:

const pathPrefix = process.env.NODE_ENV === 'production'
? '/React-Portfolio'
: '';

module.exports = {
    assetPrefix: pathPrefix,
    basepatch: "/React-Portfolio",
    env: {
        pathPrefix,
    },
};

还有人建议为所有链接添加前缀,因为 github 页面在路径中有项目名称,所以我有这个:

import Link from 'next/link';

const PrefixedLink = ({ href, as = href, children, ...props }) => (
    <Link
        href={href}
        as={`${process.env.pathPrefix}${as}`}
        {...props}
    >
        {children}
    </Link>
);

export default PrefixedLink;

但这也行不通。

在生产现场,最终结果如下所示:

<a class="HeaderStyles__NavLink-sc-9w0vkp-5 jlNUaI">About Me</a>

没有任何 href="#about",但如果我通过检查器手动添加它,它工作正常。

编辑摆脱并将 href 添加到 NavLink(自定义标签)修复了该问题。

FlyLike企鹅

摆脱并将 href 添加到 NavLink(自定义标签)修复了该问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

404页面不适用于永久链接:使用GitHub Pages + Jekyll非常漂亮

GitHub Pages Jekyll主题适用于页面,但不适用于帖子

Vue 路由器、GitHub 页面和自定义域不适用于路由链接

制作了一个适用于 JSFiddle 但不适用于 Github Pages 的 etch-a-sketch

POST 不适用于 Node.JS 和 Express

Bootstrap Popover不适用于下载的js和CSS

Js 函数不适用于 node 和 browserify

IE条件不适用于.js和.css

JS适用于Firefox和Safari,但不适用于Chrome。这是我的网站

谷歌字体不适用于 Github Pages 上部署的 React 应用程序

React Router Navbar 背景更改仅适用于 pages 文件夹,而不适用于 App.js?

服务器端渲染不适用于生产构建 Next.js

js 链接不适用于过滤的列表项

prefixfree.min.js不适用于链接标记

HTML,JS基本脚本不适用于Google Chrome,但适用于Mozilla和Microsoft Edge

“ next('route')”不适用于“ .use()”

Enter 和 Backspace 不适用于 React 中的 Slate.js 编辑器

选择和取消选择不适用于js中动态创建的复选框

使用Angular 2和Node.js下载PDF不适用于Firefox

绑定不适用于Angular.js和Firebase简单登录

Mongoose.js查询条件不适用于布尔值和对象ID搜索

list.js排序和视图更改不适用于angular

两页之间的过渡不适用于vue.js和GSAP

样式和 javascript 文件不适用于在 Node.js 中提供 HTML 的页面

简单文件上传不适用于 Vue.js 和 Flask 框架

Node.js核心模块fs不适用于webpack和angular2 cli

.htaccess mod_deflate不适用于js?ver和css?ver

Gulp revRewrite Mod不适用于重写项目中的css和js

MVC Bundle 不适用于发布配置(Debug 为 False),CSS 和 JS 未加载