Next项目路径添加指定的访问前缀方法详解

 更新时间:2023年03月05日 08:52:38   作者:Jimmy  
这篇文章主要介绍了Next项目路径添加指定的访问前缀方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

开发多个项目的时候,我们希望能通过指定的前缀路径去访问不同的项目。比如,通过前缀 /projectA/ 去访问项目 A;通过前缀 /projectB/ 去访问项目 B。我们应该怎么设置呢?

上一篇文章中,我们讲解了 SPA 项目中 Angular 项目路径添加指定的访问前缀,本文我们讲讲 MPA 项目对路径前缀的更改。

这里使用的框架是 Next.js,版本号为 11.1.2

更改项目前缀

假设我们添加的前缀为 /jimmy01/

更改页面访问前缀

准确的来说,这一步更改的是项目资源的访问前缀,不仅仅是页面的前缀。这一步骤,我们统一设置一个变量,然后引用资源。

统一设置的这个变量,在 next.config.js 文件中:

function getBasePath() {
  return '/jimmy01'
}
module.exports = {
  reactStrictMode: true,
  basePath: getBasePath(), // 添加前缀
  webpack(webpackConfig) {
    webpackConfig.output.publicPath =
      getBasePath() + webpackConfig.output.publicPath; //资源生成前缀
    return webpackConfig;
  },
  publicRuntimeConfig: {
    basePath: getBasePath(), //写入路径
  },
}

然后,我们在组件中引用,比如 Foot.js 公共组件:

import { useRef, useEffect } from 'react';
import getConfig from "next/config";
const { publicRuntimeConfig } = getConfig();
const Foot = () => {
  const refToComponentFoot = useRef(null);
  useEffect(() => {
    async function animate() {
      if(refToComponentFoot.current) {
        const ScrollReveal = (await import("scrollreveal")).default; // 动态引入
        ScrollReveal().reveal(refToComponentFoot.current, { delay: 200 });
      }
    }
    animate();
  }, [])
  return (
    <footer className="text-sm" ref={ refToComponentFoot }>
      <div className="bg-gray-300">
        <div className="max-w-7xl mx-auto px-4 sm:px-6 py-4 sm:py-6 lg:py-8">
          <div className="flex flex-col sm:flex-row justify-between items-center justify-start md:space-x-10">
            <div className="flex justify-start items-center lg:w-0 lg:flex-1 text-sm text-gray-500">
              <a href="http://beian.miit.gov.cn" rel="external nofollow"  className="text-sm">粤ICP备***号 &copy; ***公司</a>
            </div>
            <div className="flex space-x-10 items-center py-6 sm:py-1">
              <a href={`${publicRuntimeConfig.basePath}/legal.pdf`} className="font-medium text-gray-500 hover:text-gray-900">法律声明 & 使用条款</a>
            </div>
            <div className="flex items-center justify-end md:flex-1 lg:w-0">
              <a 
                href="https://www.***.com/en/" rel="external nofollow" 
                target="_blank"
              >
                <img
                  className="h-6 w-auto"
                  src={`${publicRuntimeConfig.basePath}/footer/footer_medical.svg`}
                  alt="medical"
                />
              </a>
            </div>
          </div>
        </div>
      </div>
    </footer>
  )
}
export default Foot

也就是引入变量,然后访问,上面代码的访问资源地址比如:"{${publicRuntimeConfig.basePath}/footer/footer_medical.svg}"。

部署项目

项目开发完成之后,执行打包命令行 npm run build 生成一份构建后的压缩文件夹 out,将其更名为 jimmy01,即 out -> jimmy01。我们将其上传服务器指定的路径,然后用 nginx 进行代理。

这里我们更改 nginx.config 中的 server 字段:

server {
  listen 80 default_server;
  root /usr/share/nginx/fe/; // 打包的文件存放的位置
  location / {
    index index.html;
&nbsp; &nbsp; if (!-e $request_filename){
      rewrite ^(.*)$ /$1.html break;
      break;
    }
  }
}

执行 nginx -s reload 使得配置生效。通过 http://domain.com/jimmy01/index.html 即可访问。

Thanks for reading.

以上就是Next项目路径添加指定的访问前缀方法详解的详细内容,更多关于Next 路径指定访问前缀的资料请关注脚本之家其它相关文章!

相关文章

  • js 中获取制定的cook信息实现方法

    js 中获取制定的cook信息实现方法

    下面小编就为大家带来一篇js 中获取制定的cook信息实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 一个JavaScript操作元素定位元素的实例

    一个JavaScript操作元素定位元素的实例

    操作元素定位元素,大家会想到使用js来实现,下面有个不错的示例,大家可以看看
    2014-10-10
  • JS动态添加选项案例分析

    JS动态添加选项案例分析

    这篇文章主要介绍了JS动态添加选项的方法,结合实例形式分析了javascript针对页面元素动态操作的相关技巧,需要的朋友可以参考下
    2016-10-10
  • js下弹出窗口的变通

    js下弹出窗口的变通

    js下弹出窗口的变通...
    2007-04-04
  • Bootstrap基本样式学习笔记之按钮(4)

    Bootstrap基本样式学习笔记之按钮(4)

    篇文章主要介绍了Bootstrap学习笔记之按钮基本样式的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 两种JS实现屏蔽鼠标右键的方法

    两种JS实现屏蔽鼠标右键的方法

    这篇文章主要介绍了两种JS实现屏蔽鼠标右键的方法,浏览者在访问你网页的时候就不能点击右键,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-08-08
  • 基于bootstrap-datetimepicker.js不支持IE8的快速解决方法

    基于bootstrap-datetimepicker.js不支持IE8的快速解决方法

    下面小编就为大家带来一篇基于bootstrap-datetimepicker.js不支持IE8的快速解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • 用函数式编程技术编写优美的 JavaScript_ibm

    用函数式编程技术编写优美的 JavaScript_ibm

    函数式编程语言在学术领域已经存在相当长一段时间了,但是从历史上看,它们没有丰富的工具和库可供使用。随着 .NET 平台上的 Haskell 的出现,函数式编程变得更加流行。一些传统的编程语言,例如 C++ 和 JavaScript,引入了由函数式编程提供的一些构造和特性。在许多情况下,JavaScript 的重复代码导致了一些拙劣的编码。如果使用函数式编程,就可以避免这些问题。此外,可以利用函数式编程风格编写更加优美的回调。
    2008-05-05
  • js倒计时显示实例

    js倒计时显示实例

    本文分享了js倒计时显示的实例,需要的朋友可以参考借鉴,下面就跟小编一起来看看吧
    2016-12-12
  • js判断文件类型大小并给出提示的实现方法

    js判断文件类型大小并给出提示的实现方法

    下面小编就为大家分享一篇js判断文件类型大小并给出提示的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01

最新评论