您的位置:首页 >聚焦 >

【全球聚看点】看了就会的Next.js SSR/SSG 实战教程

2022-08-24 16:22:22    来源:程序员客栈

Next.js是基于React的服务端渲染工具。在传统的React项目中,例如使用Create-React-App创建的项目,最终build生成的静态文件,是基于浏览器渲染的,即所谓的CSR(Client-side Rendering)。CSR往往都是单页面应用,即一个HTML文件和若干个js、css文件。打开build后的HTML文件,发现代码很简单,页面和组件的元素都是放在了js里,由js动态渲染到HTML中。CSR模式是目前前端开发项目中应用最为广泛的。但有些也场景,特别是需要SEO优化的时候,CSR就不太合适了,所以服务端(Server-side Rendering)渲染应运而生,SSR是由服务器将用户请求的页面DOM组装好后,再返回给浏览器,因此通过“查看网页源代码”,是可以看到完整的页面DOM的。而SSG(Static Site Generation),顾名思义就是静态网站生成,也就是常说的“网页静态化”,除了适合SEO,还很方便CDN加速,比较适合内容相对比较固定的资讯发布类网站。


(资料图)

以下是关于CSR、SSR、SSG的简单对比:

CSRSSRSSG
运行端浏览器服务器服务器
静态文件单页面由服务器即时生成多个页面
SEO不适合适合适合
静态文件CDN适合不适合适合
适用场景中后台产品信息展示型网站内容较为固定的资讯类网站

本教程基于Next.js技术框架,通过一个简单的实战项目,将工程搭建、开发、部署、自动化等环节完整讲述。如果你正在做类似CMS的项目,并且需要将网页内容静态化。那本教程将非常适合你。SSR与SSG在开发过程中几乎是完全一样的,只是最终部署的环境有所不同。掌握了SSG,那SSR也同样不在话下。

以我的个人经验来讲,从零基础学习一个新的框架,最佳的方法是结合项目边做边学,官方技术文档比较适合做手册来查阅。脱离了实战项目,只看官方技术手册,很难掌握。因此,本教程就是以实战项目的角度,把官网技术文档的主要内容串起来。相信按照本教程操作一遍之后,就能快速掌握Next.js。再回过头去系统地看一遍官方技术手册,那就会更加深入理解。

先睹为快

先看下目录了解本教程都有哪些内容。

1 创建Next.js项目

• 1.1 安装Next.js

• 1.2 设置项目目录

• 1.3 项目入口文件

• 1.4 精简项目

2 配置项目

• 2.1 设置路径别名

• 2.2 配置SourceMap(不建议设置)

• 2.3 设置页面title

• 2.4 设置HTML框架代码

• 2.5 以SSR模式运行项目

• 2.6 设置404/500页面

3 CSS预处理及使用

• 3.1 集成Sass/Scss

• 3.2 集成Less(选读)

• 3.3 集成Stylus(选读)

• 3.4 关于样式命名规范

• 3.5 配置全局样式

• 3.6 配置页面(pages)样式

4 页面路由

• 4.1 优化index页面和样式文件的存放位置

• 4.1.1 方法一:通过next.config.js配置

• 4.1.2 方法二:通过组件引入(推荐)

• 4.2 创建About页面

• 4.3 使用next/router和next/link构建导航组件

5 图片引用

• 5.1 方法一:使用原生标签引入图片

• 5.2 方法二:使用next/image引用图片

6 生成静态化网站(SSG)

• 6.1 设置SSG的export命令

• 6.2 设置静态资源的basePath

• 6.3 设置SSG export输出的目录名称

7 接口请求

• 7.1 CSR/SSR/SSG 三种API请求方式

• 7.2 搭建服务端API服务

• 7.3 构建Profile页面

• 7.4 getServerSideProps和getStaticProps小节

• 7.5 搭建Next.js API Routers服务(选读)

8 动态路由

9 使用CLI命令动态生成目录

10 其他说明

11 项目Git源码

本次分享Demo的主要依赖包版本:

Node.js16.16.0next12.2.5react18.2.0react-dom18.2.0axios 0.27.2

※注:

代码区域每行开头的:

"+" 表示新增

"-" 表示删除

"M" 表示修改

1 创建Next.js项目

1.1 安装Next.js

找个合适的目录,执行:

npx create-next-app next-ssg

next-ssg是项目名称,可根据需要自行更改。

安装完成后,进入next-ssg,运行:

yarn dev

浏览器打开http://localhost:3000/,项目运行成功。

1.2设置项目目录

Next.js官方脚手架初始目录结构如下:

├─ /.next              <-- 用于SSR运行的工程,执行yarn dev或yarn build后才会出现├─ /node_modules├─ /pages              <-- Next.js指定的页面目录|  ├─ /api             <-- Next.js指定的API服务目录,可以删除||└─hello.js<--API服务的hello接口|├─_app.js<--Next.js指定的项目入口文件|  └─ index.js         <-- 项目首页├─ /public             <-- 静态目录,放在这里的文件可通过"/"直接访问(没有public这一层级)| ├─favicon.ico|└─vercel.svg├─ /styles             <-- 项目全局样式| ├─globals.css|  └─ Home.module.css  <-- Home组件样式├─ .eslintrc.json├─ .gitignore├─ next.config.js      <-- Next.js配置文件├─ package.json├─ README.md└─ yarn.lock

以上目录结构并没有看到src目录,这与日常项目的开发习惯不一致。如果希望保持一致的开发体验,仍然可以使用src做为开发目录。

按照以下步骤重新组织目录结构:

1. 停止项目运行

2. 在项目根目录新建src目录

3. 把pages、styles两个目录放到src目录里

4. 删除pages里的api目录(后续章节讲到API请求时再创建)

再执行yarn dev,项目依然正常运行。

为什么变更了目录结构,项目还可以正常运行?

Next.js的官方脚手架虽然没有src目录,但考虑到src目录是普遍存在于大多数脚手架工程中,所以Next.js也对src目录做了支持。当然,如果新建的不是src目录,把pages、styles放进去是无法被正确识别的。

关于src目录,官方的规则如下:

1. 如果根目录下有pages,则src/pages将被忽略。

2. public目录以及next.config.js、jsconfig.json、tsconfig.json不能放到src目录里。

官方说明:https://nextjs.org/docs/advanced-features/src-directory

1.3项目入口文件

按以上目录设置后,项目的入口文件变为了src/pages/_app.js。稍后将结合演示项目进行具体讲解。

1.4精简项目

修改src/pages/index.js,最简化页面:

function Index() {return (

This is Index Page.

)}export default Index

修改src/pages/_app.js,删除首行的全局样式引用:

-   import "../styles/globals.css"function MyApp({ Component, pageProps }) {return }export default MyApp

对src目录及文件进行以下调整:

/src+  ├─ /common              <-- 公用目录+  |  ├─ /images           <-- 公用图片目录+  |  └─ /styles           <-- 公用样式目录+  ├─ /components      <-- 公用组件目录├─ /pages               <-- Next.js指定的页面目录+  |  ├─ /api              <-- Next.js指定的API服务目录(不会生成api页面目录)|  ├─ _app.js           <-- Next.js指定的项目入口文件(不会生成_app.html)|  └─ index.js          <-- index页面(会生成index.html)-  └─ /styles        <-- Next.js初始的样式目录(删除)-     └─ globals.css       <-- Next.js初始的公用样式(删除)

现在,src目录结构如下,非常精简了:

/src├─ /common            <-- 公用目录|  ├─ /images         <-- 公用图片目录|  └─ /styles         <-- 公用样式目录├─ /components      <-- 公用组件目录└─ /pages             <-- Next.js指定的页面目录├─ /api            <-- Next.js指定的API服务目录(不会生成api页面目录)├─ _app.js         <-- Next.js指定的项目入口文件(不会生成_app.html)└─ index.js        <-- index页面(会生成index.html)

执行yarn dev,效果如下:

2 配置项目

2.1 设置路径别名

为了避免使用相对路径的麻烦,可以设置路径别名。

在项目根目录下创建jsconfig.json,代码如下:

{"compilerOptions": {"baseUrl": ".","paths": {"@/*": ["src/*"],}}}

路径别名官方说明:https://nextjs.org/docs/advanced-features/module-path-aliases

这样在js代码开头的import路径中,直接使用@表示“src目录”,不用去数有多少个"../"了。

修改jsconfig.json需要重启项目才能生效。

2.2 配置SourceMap(不建议设置)

development环境是开启sourceMap的,production环境默认不开启sourceMap。

如果需要在production环境开启sourceMap,在next.config.js进行以下配置:

module.exports = {productionBrowserSourceMaps: true,}

为了不暴露项目源码,不建议进行以上设置。

2.3 设置页面title

设置页面的title很简单。

修改src/pages/_app.js:

src/_app.js:

+   import Head from "next/head"function MyApp({ Component, pageProps }) {M       return (+           <>+               +                   My Next App+               +               +           +       )}export default MyApp

运行项目,发现页面的title已经修改成功。

2.4 设置HTML框架代码

在Next.js项目里有个public目录,但是里面并没有看到类似Create-React-App项目的index.html。那如何设置HTML的内容呢?

新建src/pages/_document.js,代码如下:

import { Html, Head, Main, NextScript } from "next/document"export default function Document() {return (
)}

_document.js也是Next.js的指定文件名,且必须在pages目录下才可生效。

你可能会好奇,既然_document.js可以设置的内容,那为什么却在第2.3章节的_app.js中设置呢?</p><p>这是因为_document.js只会在初始时进行预渲染。官方不建议把<title>放到_document.js中。如果你在_document.js中的<head>里设置了<title>,在build的时候会收到warning。</p><p>title规则官方说明:https://nextjs.org/docs/messages/no-document-title</p><p>执行yarn dev,在http://localhost:3000中打开浏览器调试工具,但是并没有看到_document.js设置的内容。</p><p>这是因为_document.js设置的内容在build后才会生效。dev模式是看不到刚刚设置的内容的。</p><p>2.5 以SSR模式运行项目</p><p>执行以下命令,build项目:</p><p><pre>yarn build</pre></p><p>执行后,在项目根目录下会生成一个.next的目录。这个目录就是用于运行SSR的代码,仅能运行在服务端,不能被浏览器直接运行。</p><p>然后再执行以下命令,以SSR模式运行项目:</p><p><pre>yarn start</pre></p><p>※注:每次代码更新,在执行yarn start之前,一定要先执行yarn build。否则运行的并不是最新build的项目。</p><p>现在打开http://localhost:3000,看到是SSR模式运行的项目。打开调试工具,看到_document.js设置的代码已生效:</p><p>yarn start默认是运行在3000端口,如果想运行在4000端口,可以执行以下命令:</p><p><pre>yarn start -p 4000</pre></p><p>更多Next.js CLI命令,可参阅官方说明。</p><p>Next.js CLI官方说明:https://nextjs.org/docs/api-reference/cli</p><p>2.6 设置404/500页面</p><p>继续回到dev模式,运行yarn dev。</p><p>现在打开一个并不存在的页面路径,例如http://localhost:3000/test,页面显示如下:</p><p><mp-pay-preview-filter></mp-pay-preview-filter></p> <p style="color: #fff;"> 关键词: <a href="http://news.sc-rh.com/taggenmuluxia/" title="根目录下" target="_blank" style="color: #fff;">根目录下</a> </p> </div> <section class="related-stock-list" ></section> <section> <h3>相关阅读</h3> <ul> <li> <h4><a href="http://www.sc-rh.com/kjjj/20221130/400293551.html" title="世界热推荐:今晚7:00直播丨下一个突破口?Cocos 携手 Google 助力 Web 端游戏出海与变现" target="_blank" class="ellipsis-1" style="color: #444;font-size: 17px;">世界热推荐:今晚7:00直播丨下一个突破...</a></h4> <a href="" class="color-c" target="_blank" style="font-size: 10px;">今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年...</a> </li> <li> <h4><a href="http://www.sc-rh.com/kjjj/20221130/400293550.html" title="NFT周刊|Magic Eden宣布支持Polygon网络;Mattel推出专用NFT平台;GTA拒绝使用NFT_天天微速讯" target="_blank" class="ellipsis-1" style="color: #444;font-size: 17px;">NFT周刊|Magic Eden宣布支持Polygon网...</a></h4> <a href="" class="color-c" target="_blank" style="font-size: 10px;">Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去...</a> </li> <li> <h4><a href="http://www.sc-rh.com/kjjj/20221130/400293549.html" title="环球今亮点!头条观察 | DeFi的兴衰与演化方向" target="_blank" class="ellipsis-1" style="color: #444;font-size: 17px;">环球今亮点!头条观察 | DeFi的兴衰与...</a></h4> <a href="" class="color-c" target="_blank" style="font-size: 10px;">在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的...</a> </li> <li> <h4><a href="http://www.sc-rh.com/kjjj/20221130/400293548.html" title="重新审视合作,体育Crypto的可靠关系才能双赢" target="_blank" class="ellipsis-1" style="color: #444;font-size: 17px;">重新审视合作,体育Crypto的可靠关系才能双赢</a></h4> <a href="" class="color-c" target="_blank" style="font-size: 10px;">Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着...</a> </li> <li> <h4><a href="http://www.sc-rh.com/kjjj/20221129/400293533.html" title="简讯:前端单元测试,更进一步" target="_blank" class="ellipsis-1" style="color: #444;font-size: 17px;">简讯:前端单元测试,更进一步</a></h4> <a href="" class="color-c" target="_blank" style="font-size: 10px;">前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发...</a> </li> <li> <h4><a href="http://www.sc-rh.com/kjjj/20221129/400293480.html" title="焦点热讯:刘强东这波操作秀" target="_blank" class="ellipsis-1" style="color: #444;font-size: 17px;">焦点热讯:刘强东这波操作秀</a></h4> <a href="" class="color-c" target="_blank" style="font-size: 10px;">近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...</a> </li> </ul> </section> <div class="h-20"></div> </div> <!-- 右侧 --> <div class="detail-r"> <div class="pannel-b"> <div class="show_adver" style="width: 300px;margin: 10px 0;"><div class="adver_3"><script type="text/javascript" src="http://user.042.cn/adver/adver.js"></script><script type="text/javascript">getAdvert('.adver_3',1,'300px','300px');</script></div></div> <h3> <label>热点文章</label> </h3> <div class="list-news"> <a href="http://www.sc-rh.com/kjjj/20221129/400293479.html" target="_blank"> <label>16:24</label> <p><span class="ellipsis-2">京东内部开启大规模人事调整</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293442.html" target="_blank"> <label>15:46</label> <p><span class="ellipsis-2">副业1000元,文末有代码,制作一个谷歌浏览器插件,实现网页数据爬虫</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293420.html" target="_blank"> <label>14:36</label> <p><span class="ellipsis-2">盘点一个英文文本中统计关键词的方法</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293419.html" target="_blank"> <label>14:31</label> <p><span class="ellipsis-2">怎样能自动按列01 列02 最大为列99,来设置列标题?|当前热门</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293383.html" target="_blank"> <label>11:46</label> <p><span class="ellipsis-2">今日视点:位图法在mongodb中的应用</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293312.html" target="_blank"> <label>07:46</label> <p><span class="ellipsis-2">每日热议!如何使用Python查询在一个月内出现的重复订单?</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293311.html" target="_blank"> <label>07:45</label> <p><span class="ellipsis-2">盘点一个批量提取pdf文件目标信息的实用案例 环球热消息</span></p> </a> <a href="http://www.sc-rh.com/kjjj/20221129/400293304.html" target="_blank"> <label>06:35</label> <p><span class="ellipsis-2">今日精选:Python 教你快速批量下载抖音去水印短视频</span></p> </a> </div> </div> <div><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 300*250 --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-2539936277555907" data-ad-slot="5595452274"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> <div class="pannel-b recommend-content"> <h3> <label class="aboutnews">推荐文章</label> </h3> <div class="list-refer"> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221130/400293551.html" title="世界热推荐:今晚7:00直播丨下一个突破口?Cocos 携手 Google 助力 Web 端游戏出海与变现" target="_blank" > <img src="http://img.xunjk.com/2022/0610/20220610022249213.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221130/400293551.html" target="_parent">世界热推荐:今晚7:00直播丨下一个突破口?Cocos 携手 Google 助力 Web 端游戏出海与变现</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221130/400293551.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-30</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221130/400293550.html" title="NFT周刊|Magic Eden宣布支持Polygon网络;Mattel推出专用NFT平台;GTA拒绝使用NFT_天天微速讯" target="_blank" > <img src="http://img.inpai.com.cn/2022/0923/20220923110305857.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221130/400293550.html" target="_parent">NFT周刊|Magic Eden宣布支持Polygon网络;Mattel推出专用NFT平台;GTA拒绝使用NFT_天天微速讯</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221130/400293550.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-30</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221130/400293549.html" title="环球今亮点!头条观察 | DeFi的兴衰与演化方向" target="_blank" > <img src="http://www.xcctv.cn/uploadfile/2022/0610/20220610101642355.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221130/400293549.html" target="_parent">环球今亮点!头条观察 | DeFi的兴衰与演化方向</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221130/400293549.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-30</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221130/400293548.html" title="重新审视合作,体育Crypto的可靠关系才能双赢" target="_blank" > <img src="http://www.cnmyjj.cn/uploadfile/2022/0610/20220610113536218.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221130/400293548.html" target="_parent">重新审视合作,体育Crypto的可靠关系才能双赢</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221130/400293548.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-30</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221129/400293533.html" title="简讯:前端单元测试,更进一步" target="_blank" > <img src="http://imgs.hnmdtv.com/2022/0610/20220610024400214.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221129/400293533.html" target="_parent">简讯:前端单元测试,更进一步</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221129/400293533.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-29</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221129/400293480.html" title="焦点热讯:刘强东这波操作秀" target="_blank" > <img src="http://img.dzwindows.com/2022/0610/20220610113213263.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221129/400293480.html" target="_parent">焦点热讯:刘强东这波操作秀</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221129/400293480.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-29</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221129/400293479.html" title="京东内部开启大规模人事调整" target="_blank" > <img src="http://www.dianxian.net/uploadfile2022/0610/20220610021935495.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221129/400293479.html" target="_parent">京东内部开启大规模人事调整</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221129/400293479.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-29</span> </label> </dd> </dl> <dl> <dt><a href="http://www.sc-rh.com/kjjj/20221129/400293442.html" title="副业1000元,文末有代码,制作一个谷歌浏览器插件,实现网页数据爬虫" target="_blank" > <img src="http://img.haixiafeng.com.cn/2022/0923/20220923110927333.jpg" width="132" height="100" style="margin-left: -25px;"></a></dt> <dd> <h4 class="ellipsis-2"><a href="http://www.sc-rh.com/kjjj/20221129/400293442.html" target="_parent">副业1000元,文末有代码,制作一个谷歌浏览器插件,实现网页数据爬虫</a></h4> <label> <a href="http://www.sc-rh.com/kjjj/20221129/400293442.html" target="_blank">聚焦</a> <span class="float-r"><i class="iconfont icon-shijian size-18 color-c margin-r10 float-l"></i>11-29</span> </label> </dd> </dl> </div> </div> <div><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <!-- 300*250蓝色 --> <ins class="adsbygoogle" style="display:inline-block;width:300px;height:250px" data-ad-client="ca-pub-2539936277555907" data-ad-slot="1165252676"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script></div> </div> <div class="h-80 clear"></div> </div> <footer style="padding-top: 0;"> <div class="wrap"> <!-- <dl> <dt class="padding-b5">友情链接:</dt> <dd> <a href='http://www.shikenews.com/' target="_blank" title="时刻头条">时刻头条</a> <a href='http://wanwanglianjie.450.com.cn/' target="_blank" title="网址导航">网址导航</a> <a href='http://www.93tea.cn/' target="_blank" title="九十三度白茶网">九十三度白茶网</a> <a href='http://www.gxcbt.com/' target="_blank" title="经济新闻网">经济新闻网</a> <a href='http://www.cngulu.com/' target="_blank" title="咕噜财经">咕噜财经</a> <a href='http://ruanwen.ctocio.com.cn/' target="_blank" title="软文推广营销">软文推广营销</a> <a href='http://www.zhuanglala.com/' target="_blank" title="装啦啦装修网">装啦啦装修网</a> <a href='http://www.xckj688.com/' target="_blank" title="鳢鱼商标注册">鳢鱼商标注册</a> <a href='https://lvyou.niujiaolong.cn/' target="_blank" title="牛角龙旅游">牛角龙旅游</a> <a href='http://henan.042.org.cn/' target="_blank" title="中华网河南">中华网河南</a> <a href='http://www.henan.042.org.cn/ ' target="_blank" title="中华网河南">中华网河南</a> <a href='https://www.yongkao.com/' target="_blank" title="有考网">有考网</a> <a href='https://www.edu777.com/' target="_blank" title="七考网">七考网</a> <a href='http://www.uf.cn/' target="_blank" title="购物优惠券">购物优惠券</a> <a href='http://www.niujiaolong.com/' target="_blank" title="超值导购优惠券">超值导购优惠券</a> <a href='https://edu.lipu.cn/' target="_blank" title="励普网校 ">励普网校 </a> <a href='http://www.xckj688.com/' target="_blank" title="专业商标申请公司">专业商标申请公司</a> <a href='http://www.ciope.com.cn/' target="_blank" title="专利申请流程">专利申请流程</a> <a href='http://www.qiha.cn/?b=0' target="_blank" title="启哈号">启哈号</a> <a href='http://www.suwa.cn/' target="_blank" title="速挖投诉平台">速挖投诉平台</a> <a href='http://www.wannengbaike.com/?b=0' target="_blank" title="万能百科">万能百科</a> <a href='http://www.szonline.cn/' target="_blank" title="深圳热线">深圳热线</a> <a href='http://www.cntvsp.cn/?b=0' target="_blank" title="中国食品网络电视台">中国食品网络电视台</a> <a href='http://www.xjche365.com/?b=0' target="_blank" title="消费新闻网">消费新闻网</a> <a href='https://www.3news.cn/' target="_blank" title="财报网">财报网</a> <a href='http://caibao.3news.cn/ ' target="_blank" title="财报网">财报网</a> <a href='http://www.jxyuging.com/?b=0' target="_blank" title="参考财经网">参考财经网</a> <a href='http://www.qhdxw.com/?b=0' target="_blank" title="秦皇岛热线">秦皇岛热线</a> <a href='http://jiufanggaizao.meijiezhijia.cn/ ' target="_blank" title="电路维修">电路维修</a> <a href='http://fangwugaizao.meijiezhijia.cn/ ' target="_blank" title="防水补漏">防水补漏</a> <a href='http://fangwuweixiu.meijiezhijia.cn/ ' target="_blank" title="水管维修">水管维修</a> <a href='http://jiufangweixiu.meijiezhijia.cn/ ' target="_blank" title="墙面翻修">墙面翻修</a> <a href='http://www.ruanwen.com/' target="_blank" title="新闻发稿">新闻发稿</a> <a href='http://www.fazhi.net/' target="_blank" title="法律咨询">法律咨询</a> <a href='http://www.minglv.com/' target="_blank" title="名律网 ">名律网 </a> <a href='http://www.cwbol.com/project/' target="_blank" title="项目大全">项目大全</a> <a href='http://www.cfcc.net/news/' target="_blank" title="整形资讯">整形资讯</a> <a href='http://www.uisweb.com/news/' target="_blank" title="整形新闻">整形新闻</a> <a href='http://www.econde.com/' target="_blank" title=" 美丽网"> 美丽网</a> <a href='http://www.2594.net/' target="_blank" title="佳人网">佳人网</a> <a href='http://www.shuifa.net/' target="_blank" title="税法网">税法网</a> <a href='http://www.fawuwang.com.cn/' target="_blank" title="法务网">法务网</a> <a href='http://www.lvsu.com/' target="_blank" title="法律服务">法律服务</a> <a href='https://www.3news.cn/ ' target="_blank" title="财务报表">财务报表</a> <a href='http://www.ruanwen.cn/ ' target="_blank" title="媒体采购网">媒体采购网</a> <a href='http://www.a0usa.top/' target="_blank" title="焦点网">焦点网</a> <a href='http://www.zhaolu2.cn/' target="_blank" title="热点网">热点网</a> <a href='http://www.thaixiang.com/' target="_blank" title="参考网">参考网</a> <a href='http://www.dota2web.com/' target="_blank" title="聚焦网 ">聚焦网 </a> <a href='http://www.xunjk.com/' target="_blank" title="中国创投网">中国创投网</a> </dd> </dl> --> <div class="align-l line-h-50 color-a size-14 margin-t25"><p style="text-align: center">关于我们| 联系方式| 版权声明| 供稿服务| 友情链接</p> <p style="text-align: center"><a href="http://www.sc-rh.com/"><span style="color: #ffffff">环球科技网</span></a> 版权所有,未经书面授权禁止使用<a style="color:#fff" href="https://beian.miit.gov.cn/">备案号: 京ICP备2022018928号-1 <img src="http://www.zhuanglala.com/20160225_ghs_v1.png" /> 营业执照公示信息</a></p> <p style="text-align: center">Copyright©2008-2020 By <a href="http://www.sc-rh.com/"><span style="color: #ffffff">www.sc-rh.com</span></a> All Rights Reserved<br /> 联系我们:315 541 185@qq.com</p></div> <div class="h-15 clear"></div> </div> </footer> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> <script charset="UTF-8" language="javascript" src="//data.dzxwnews.com/a.php"></script> </body> </html>