使用React从零完整构建一个前后端分离网站,诞生一个小项目PoemKit

news/2024/5/20 14:16:56/文章来源:https://blog.csdn.net/changcheng552200/article/details/121316169

打杂到一定时候,也要总结总结,4年前UI工作做得蛮多,目前开发工作接触的蛮多,其实就是为了项目的落地不求人,不知不觉学了些东西,闲暇之余做了一些东西。

今天有无数的React UI工具包和库。那面对这么多选择,面对新的项目挑战,我下一步应该做什么?是学习新框架,还是自己造轮子,还是去挖掘一些工具,总之,我需要一个思考,以便更好地面对未来更多的技术需求和革新。框架毕竟只是框架,抛开场景谈用途都不对,我应该思考如何从个人成长和项目需求,语言基本功的训练等方面来规划未来,规划这个开源工具的工作。这就是为什么在一年中这个繁忙的时间里,我仍然抽时间学习一些前端或后端的技术,它们如此重要。不过,首先我会考虑某些框架是否适合去采用。另外我特别关注2021年至2022年新冠病毒的大流行对工作对行业发展的各种影响。

下面是这个小玩意儿的预览图:
在这里插入图片描述
PoemKit可以直接通过命令工作和部署到云服务器, 但仍然需要在其背后编写真正的代码,这些工具包作为UI组件和逻辑模块,可以组合成一个真正的应用程序原型。它仍然需要编程功能才能使它们在实际需求中工作。

这个项目的一个有趣的方面,其实是对webpack很强的自定义特性,如果你想快速用于产出,也可以直接导入蚂蚁组件等第三方组件库,为了进一步完善模型,PoemKit提供了50多个内置UI组件,用于构建现代Web应用程序。

先说说我的想法吧。

为了适应一些大型的网站平台和软件项目,我考虑了一些React框架,比如Nextjs,但是最终我决定暂时放弃它(只是暂时性的,对于未来的某些项目也可能直接采用),我想让网站的架构能够自由的操控,比如webpack脚手架的功能性,扩展性。一方面从零开始搭建webpack脚手架,也能够让我深入学习各方面的知识,让我系统的了解React网站的架构原理和实现方法,同时将它沉淀为开源的工具箱,能够在未来给我的项目提供必要的支持和参考。

如果进行数据传输,那么我将优先使用Redux来做跨组件状态管理器,未来根据项目需要也会使用一些便携的工具包。我将所有的UI组件都使用TypeScript来编写,一方面组件库系统化利于管理,一方面它们和整个React网站的逻辑区块不会冲突。它还要能够直接导入其它UI组件库,比如Ant Design. 于此同时,该工具箱需要内置自定义React组件,以方便集成并改善开发人员体验。

对于制作一个前后端完全分离的网站,我还需要考虑响应式和一些酷炫的交互效果,复杂的动画我使用了GSAP插件,并且让整个网站兼容Bootstrap和常见的图标库,以提供更加友好的样式支持。它和本身内置的样式和脚本不冲突,这是我对于项目交互复杂化的考虑。

最后需要考虑SEO的问题,我也会进一步解决。比如让整个React网站支持自定义的meta标签和title等,至于性能,组件之间的通信和挂载、卸载,都严格参考相关的官方文档,做了脚本优化的处理。

当然,对于一个学习人,我的代码和脚本并不是非常高端和优秀,但是整个开源产品让我的思维和整体技术得到了非常多的学习和提升,也让我对未来的新项目多了很多选择。我希望它能给大家带来一些用途,也非常感谢大家耐心阅读我的文字。

接着,我还需要为他取一个不错的名字,因为我喜欢WordPress,WordPress有一句谚语:Code is Poetry. 说的就是代码如同诗歌一般美妙。做这个工具包,我也是为了做出更加如诗美妙的网站而努力,所以PoemKit就算这么来的。

在这里插入图片描述

好了,我已经把整个项目开源,接下去我继续详细介绍整个PoemKit工具包:

资源地址:https://github.com/xizon/poemkit

演示

在线演示 https://uiux.cc/poemkit

服务器端运行 http://localhost:3000

介绍

  • 基础环境: TypeScript 4.x.x + Babel 7.x.x + Webpack 5.x.x
  • 提供结构化布局对象、UI控件等多种预置UI组件
  • 可访问的URL、SEO优化,以及使用React Helmet使您的站点对搜索引擎友好
  • 集开发、调试、打包和部署为一体
  • 它不是一个JavaScript框架
  • 没有jQuery且不绑定任何工具库
  • 支持服务器端渲染(SSR)
  • 组件分离,可以导入任何第三方UI组件到项目 (比如Ant Design)
  • 使用Sass/SCSS来设置React组件的样式
  • 自动捆绑并生成独立的核心CSS和JS文件
  • 支持通过pm2自动部署到服务器
  • ✂️ 插件扩展: 默认组件演示导入了诸如Bootstrap4栅格系统, GSAP动画库, FontAwesome图标库, 3D引擎等常用的第三方插件,以便能够快速扩展您的网站 (可以按需配置需要导入的库或者插件)
  • ✂️ 可配置脚手架: 独立打包dist文件(您可以自主修改webpack.config.js使用内存挂载)

开发者基本操作:

  1. 配置你电脑的Node.js环境,推荐Node 14+版本,测试环境为v14.16.0

  2. 下载完资源后,进入到 poemkit 目录下,运行相关命令进行开发或者部署。

  3. 当你需要配置脚手架和网站基础信息和结构的时候,可编辑 package.json 文件。

  4. 项目文件会打包生成到 ./dist/*./public/*.html.

命令使用方法:

Step 1. 下载项目

$ sudo npm install poemkit

或者克隆项目:

$ git clone git://github.com/xizon/poemkit.git

Step 2. 使用命令进入 poemkit/ 目录, {your_directory}换成你的目录路径

$ cd /{your_directory}/poemkit

Step 3. 安装所需要的依赖项

$ sudo npm install

Step 4. 常用的命令:

调试应用程序, 它可以用来单独检查TypeScript类型的文件而不进行编译操作,便于提高开发效率,专注整体代码的编写。

$ npm run check

打包生成CSS,JS,HTML文件

$ npm run build

运行下面的命令进行本地测试和代码检查 (仅运行Express服务器)。 使用 Ctrl + C 退出终端

$ npm run dev

Step 5. 浏览器中访问以下网址,可快速调试:

http://localhost:3000

建议在调试之前将新代码重新编译打包。

Step 6 (可选). 用PM2启动Reactjs应用程序(仅在使用Node v13.9.0或更高版本时有效)。

6.1) 安装Node和NPM

$ curl -sL https://rpm.nodesource.com/setup_14.x | sudo bash -
$ sudo yum install nodejs
$ node --version  #v14.16.1
$ npm --version   #6.14.12
$ which node babel-node #check the location of node and babel-node

6.2) 全局安装PM2

$ sudo npm install pm2@latest -g

6.3) 全局安装Babel

$ sudo npm install -g babel-cli
$ sudo npm install -g @babel/core @babel/cli @babel/preset-env 

6.4) 全局安装TypeScript和ts-node

$ sudo npm install -g typescript ts-node

6.5) 使用PM2安装TypeScript依赖

$ sudo pm2 install typescript

6.6) PM2常用命令:

#先进入 `"poemkit/"` 目录 
$ cd /{your_directory}/poemkit#用pm2运行应用
$ pm2 start ecosystem.config.js#其它命令
$ pm2 restart ecosystem.config.js
$ pm2 stop ecosystem.config.js
$ pm2 delete ecosystem.config.js
$ pm2 list
$ pm2 logs

6.7) 使用域名访问您的React应用。

需要在Apache或Nginx的Web服务器上部署React App。请参考网络以获取有关设置代理的教程。

Step 7 (可选). 单元测试

$ npm run test

Step 8 (可选). 部署到服务器

$ npm run deploy

撤销现有部署:

$ npm run destroy

⚙️ 温馨提示:

a) ERROR: npm update check failed.

如果出现如上错误,表示nodejs的环境或权限问题,可以使用下面的命令解决,注意把{username}换成你自己的设备里的名字。

$ sudo chown -R $USER:$(id -gn $USER) /Users/{username}/.config

b) ERROR: Node sass version 6.x.x is not compatible with ^ 4.x.x.

如果出现如上错误,请修改node-sass的版本:

$ npm install node-sass@4.14.1

c) 如果升级Node版本,请执行以下代码:

$ sudo npm install
$ sudo npm rebuild node-sass

⚙️ 配置模块和别名:

您可以通过修改 webpack.config.jsresolve 属性来创建 importrequire 的别名,来确保模块引入变得更简单.

webpack.config.js :

...
const alias = {pathConfig            : './src/config',pathComponents        : './src/client/components',pathRouter            : './src/client/router',pathHelpers            : './src/client/helpers',pathServices          : './src/client/services',pathReducers          : './src/client/reducers',pathPages             : './src/client/views/_pages',pathActions           : './src/client/actions',pathServer            : './src/server',pathStore             : './src/store'
};...
resolve: {extensions: ['.js', '.es6', '.vue', '.jsx', '.ts', '.tsx' ],alias: {// 需要同时配置 `babel.config.js` 和 `tsconfig.json` 文件'@poemkit/config': path.resolve(__dirname, alias.pathConfig ),'@poemkit/components': path.resolve(__dirname, alias.pathComponents ),'@poemkit/router': path.resolve(__dirname, alias.pathRouter ),'@poemkit/helpers': path.resolve(__dirname, alias.pathHelpers ),'@poemkit/services': path.resolve(__dirname, alias.pathServices ),'@poemkit/reducers': path.resolve(__dirname, alias.pathReducers ),'@poemkit/pages': path.resolve(__dirname, alias.pathPages ),'@poemkit/actions': path.resolve(__dirname, alias.pathActions ),'@poemkit/server': path.resolve(__dirname, alias.pathServer ),'@poemkit/store': path.resolve(__dirname, alias.pathStore ),}
},
...

babel.config.js :

..."plugins": [["module-resolver", {"root": ["./src"],"alias": {"@poemkit/config": "./src/config","@poemkit/components": "./src/client/components","@poemkit/router": "./src/client/router","@poemkit/helpers": "./src/client/helpers","@poemkit/services": "./src/client/services","@poemkit/reducers": "./src/client/reducers","@poemkit/pages": "./src/client/views/_pages","@poemkit/actions": "./src/client/actions","@poemkit/server": "./src/server","@poemkit/store": "./src/store"}}]]
...

tsconfig.json :

{"compilerOptions": {"baseUrl": "./src","paths": {"@poemkit/config/*": ["config/*"],"@poemkit/components/*": ["client/components/*"],"@poemkit/router/*": ["client/router/*"],"@poemkit/helpers/*": ["client/helpers/*"],"@poemkit/services/*": ["client/services/*"],"@poemkit/reducers/*": ["client/reducers/*"],"@poemkit/pages/*": ["client/views/_pages/*"],"@poemkit/actions/*": ["client/actions/*"],"@poemkit/server/*": ["server/*"],"@poemkit/store/*": ["store/*"]}}
}

package.json :

{"jest": {"testEnvironment": "jsdom","moduleNameMapper": {"\\.(css|less|scss|sass)$": "identity-obj-proxy","^@poemkit/config/(.*)": "<rootDir>/src/config/$1","^@poemkit/components/(.*)": "<rootDir>/src/client/components/$1","^@poemkit/router/(.*)": "<rootDir>/src/client/router/$1","^@poemkit/helpers/(.*)": "<rootDir>/src/client/helpers/$1","^@poemkit/services/(.*)": "<rootDir>/src/client/services/$1","^@poemkit/reducers/(.*)": "<rootDir>/src/client/reducers/$1","^@poemkit/pages/(.*)": "<rootDir>/src/client/views/_pages/$1","^@poemkit/actions/(.*)": "<rootDir>/src/client/actions/$1","^@poemkit/server/(.*)": "<rootDir>/src/server/$1","^@poemkit/store/(.*)": "<rootDir>/src/store/$1"},"transform": {"^.+\\.(js|jsx)$": "babel-jest","^.+\\.(ts|tsx)?$": "ts-jest"}}
}

⚙️ 库相关配置:

您可以通过修改 webpack.config.jsoutput 属性来指示 webpack 如何去输出、以及在哪里输出你的「bundle、asset 和其他你所打包或使用 webpack 载入的任何内容」

...
const globs = {port                  : 8080,examples              : 'public',build                 : 'src/client',dist                  : 'dist'
};...
output: {path: path.resolve(__dirname, './' + globs.dist + '/js' ),filename: '[name].js'
},
...

⚙️ 网站配置:

修改package.json文件即可:

{"author": "UIUX Lab","name": "poemkit","email": "uiuxlab@gmail.com","version": "1.0.0","projectName": "PoemKit","createdInfo": "UIUX Lab (https://uiux.cc)","projectURL": "https://uiux.cc","description": "A free web kits with React for fast web design and development via SSR.",...
}

⚙️ 路由配置:

路由配置同时也兼顾了网站的主导航(不包括将在主导航的页面上配置的嵌套路由)。 访问文件 ./src/client/router/RoutesConfig.js.

路由器的一些脚本可以在文件中修改 ./src/client/router/App.js.

⚙️ 服务端渲染配置:

服务端渲染和标签替换的一些脚本可以在文件中修改 ./src/server/renderer.js.

⚙️ 设置服务器代理:

为了同时运行服务器和React应用程序,我们需要在 package.json 中添加proxy 键。我们已经将服务器设置为在端口3000上运行,因此将代理指向 localhost:3000

{"proxy": "http://localhost:3000",...
}

⚙️ 使用 PropTypes 检查类型:

$ npm run dev

使用下面的JavaScript脚本可以编写调试代码,在终端显示错误和警告信息。

import PropTypes from "prop-types";
import React, { Component } from 'react';export default class YourComponentName extends Component { public static propTypes = {};constructor(props) {super(props);}render() { ... }
}if ( process.env.NODE_ENV === 'development' ) {YourComponentName.propTypes = {displayEnable: PropTypes.bool.isRequired,htmlString: PropTypes.oneOfType([PropTypes.string, PropTypes.object])}}

⚙️ 自定义导入的第三方库或插件:

应用默认加载了常用的第三方库(图标,动画,3D引擎等),您可以按需加载,或者修改导入配置。第三方插件配置文件位于 ./src/client/components/_plugins/. 第三方插件默认和自定义组件一起使用,您也可以主动移除它们。

⚙️ 网站根目录配置:

更改网站的根目录,以便您的项目上传到另一个目录时可以使用它。修改 ./src/config/websiteConfig.js 的键 rootDirectory

如果该文件位于根目录中,则可以将其保留为空。 如果在另一个目录中,则可以写成 “/blog” (结尾不要加斜杠)

{"rootDirectory": ""
}

⚙️ 网站URL配置:

网站地址(URL)通常被用于SEO优化。修改 ./src/config/websiteConfig.js 的键 siteUrl。一个完整的URL一般被命名为 https://domain-name.com (结尾不要加斜杠和子目录名称)

{"siteUrl": ""
}

⚙️ 接口API配置:

修改 ./src/config/websiteConfig.js 的键 API, 如下代码:

{"API": {"RECEIVE_DEMO_LIST": "https://apiurl1.com","RECEIVE_DEMO_LISTDETAIL": "https://apiurl2.com"}
}

目录结构

poemkit/
├── README.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── ecosystem.config.js ------------------------- # 用于pm2部署
├── babel.config.js
├── webpack.config.js 
├── package-lock.json
├── package.json 
├── test/            --------------------------- # 单元测试脚本
├── public/          --------------------------- # 自动生成的首页HTML静态模板
│   ├── index.html 
│   ├── manifest.json
│   └── server/   ------------------------------- # 用于服务器测试的PHP脚本
│   └── assets/
├── dist/         ------------------------------- # web 编译出的文件,用于生产环境
│   ├── css/
│   │   ├── poemkit.css
│   │   └── poemkit.min.css
│   └── js/
│   │   ├── poemkit.js
│   │   └── poemkit.min.js
├── src/
│   ├── client/
│   │   ├── client.js
│   │   ├── actions/
│   │   ├── reducers/
│   │   ├── helpers/
│   │   ├── services/
│   │   ├── router/
│   │   ├── components/ -------------------------  # 独立的UI组件
│   │   │     ├── */
│   │   │     ├── _utils/ -----------------------  # 常用的实用程序和样式脚本
│   │   │     └── _plugins/ ---------------------  # 第三方插件
│   │   ├── views/ ------------------------------  # 网站页面
│   │   │     ├── _pages/
│   │   │     └── _html/
│   └── server/
│   │   ├── app.js
│   │   ├── server.js
│   │   └── renderer.js
│   └── store/
│   │   └── createStore.js
│   └── config/
│   │   ├── tmpl-manifest.json  ------------------  # 自动生成的 `manifest.json` 文件模板
│   │   └── websiteConfig.js  --------------------  # 网站配置文件(比如根目录)
└──

兼容性

ChromeFirefoxEdgeIESafariOperaiOSAndroid
>= 49>= 45>=14>=11>= 9>= 30>=10>=4.4

支持的开发环境

  • 支持React 17 +
  • 支持ReactTypeScript 4.x.x +
  • 支持ReactBabel 7.x.x +
  • 支持ReactWebpack 5.x.x

这些是我的想法。如果您想讨论某些内容或对如何改进有更多意见,请随时告诉我!感谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_885412.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从修复 testerhome(rubychina)网站的一个 bug 学习 rubyrails on ruby

前言 testerhome: http://testerhome.com/topics/1480 对于一个差点脱离前沿技术人&#xff0c;想要学习ruby&#xff0c;就意味着要放弃熟悉的操作系统windows&#xff0c;熟悉的ide-eclipse&#xff0c;更重要的是要从java这种重量级编译型语言的编程思想强行转换为ruby这种轻…

网站GZip优化

什么是Gzip压缩&#xff1f; 当用户点击我们的网站时&#xff0c;服务器提供的文件越大&#xff0c;到用户的浏览器并显示在屏幕上所需的时间就越长。 GZIP在传输他们到浏览器之前压缩网页和样式表&#xff0c;大大减少了传输时间&#xff0c;因为这些文件小得多。 GZIP压缩…

Spring Boot监听器记录网站访问人数

一、场景 使用Spring Boot框架&#xff0c;通过监听器记录网站访问人数和网站访问量。 二、实现 1.通过监听器创建存储访问信息的初始化变量 Override public void contextInitialized(ServletContextEvent servletContextEvent) {logger.info("ServletContext上下文初…

nginx网站优化提速工具ngx_pagespeed进入beta阶段

Page Speed是谷歌提供的一个Web优化工具&#xff0c;它可以对网站的Web服务器配置和前端代码执行若干测试&#xff0c;并提供优化建议。 在此工具的基础上&#xff0c;谷歌针对Apache、nginx服务器提供了一个傻瓜式的优化工具mod_pagespeed、 ngx_pagespeed&#xff0c;这些工…

纯css 应用使得网站各个模块切换 平滑过渡

首先创建一个百分百的 layout 然后创建各个panel layout 然后应用按钮加上平滑过渡效果 这样会使得网页更加丰富生动 <div class"st-container"><input type"radio" name"radio-set" checked"checked" id"st-control-1&…

推荐一款神器,桌面远程调试IOS网站的工具 很好很强大 支持国产!

MIHTool 是前端工程师在iOS设备上调试和优化页面的得力助手. 首先app Store下载 MIHTOOL。 然后安装后地址栏打开所需要调试的网站&#xff0c;然后会弹出本地使用的ip地址 类似这样的 http://192.168.1.165:1630/devtool/client/#leZV6e 然后&#xff0c;出现如下界面就等于就…

利用代理页面解决html iframe跨域访问网站问题

转自&#xff1a;http://www.zuidaima.com/share/1854884509142016.htm 在做项目的时候遇到跨域问题&#xff0c;经过自己的一番摸索终于找到一种解决iframe跨域问题的方案&#xff0c;或许很多人也会遇到这样头疼的问题&#xff0c;希望能尽自己绵薄之力帮助大家。如果不清楚或…

web安全/渗透测试(四):收集目标网站信息的网站

一、http://whois.domaintools.com/ 查找目标网站所有者的信息 二、https://sitereport.netcraft.com/?url site report入口输入目标网站地址 查找目标网站使用的技术&#xff0c;包括服务器的技术和客户端的技术 三、https://www.robtex.com/ 查找关于目标网站的DNS信…

第一篇——胡咧咧之动漫素材如何最有效最快的查找下载,动漫网站有哪些?

第一篇——胡咧咧之动漫素材如何最有效最快的查找下载&#xff0c;动漫网站有哪些&#xff1f; 大家好&#xff0c;我是祥小和&#xff0c;喜欢我的可以点赞收藏&#xff0c;让我去吃灰了&#xff0c;鼓掌。。。 我之所以写博客&#xff0c;是因为我记性不太好&#xff0c;难…

【笔记1】chrome网站技术分析插件:Wappalyzer

1、下载&#xff1a; 插件下载地址&#xff1a;https://chrome.zzzmh.cn/info?tokengppongmhjkpfnbhagpmjfkannfbllamg 2、安装&#xff1a; chorme中打开&#xff1a;chrome://extensions/ 可以把下载的.crx文件拖到浏览器中安装 也可以手动导入插件 3、使用&#xff1a; 在…

Python学习笔记 - 使用django的内置功能开发网站(详细)

Python学习笔记 - 使用django的内置功能开发网站&#xff08;详细&#xff09; Part 1 | 基本操作 安装django模块 django是第三方模块&#xff0c;因此需要下载。这里介绍2种下载方式。 使用PyCharm下载django 打开PyCharm&#xff0c;在菜单栏中找到: File > Setting…

Python学习笔记 - 使用django模块开发网站(较详细)

注&#xff1a;我上次的django开发教程&#xff1a;点击这里 Python学习笔记 - 使用django模块开发网站(较详细) 下载 & 安装django django是Python的第三方模块&#xff0c;需要下载安装。使用pip安装django非常简易1。 pip install django新建项目 cmd窗口输入命令:…

中医自学平台---前端网站

使用开源的框架vue-admin-template&#xff08;https://github.com/PanJiaChen/vue-admin-template&#xff09;。 这个需要提前安装node。 可以用nvm来管理和安装node。 然后设nvm的镜像源&#xff1a; nvm node_mirror https://npm.taobao.org/mirrors/node/ nvm npm_mir…

Web开发人员应当收藏的10个网站

Web开发人员应当收藏的10个网站 互联网上有数百万的网站可以提供服务&#xff0c;其中只有一些对Web开发员来说是极为有效的工具。在本文中&#xff0c;Jean-Baptiste Jung整理出了10个极有用的网站&#xff0c;绝对值得Web开发者收藏到书签中。 1. Mysql Format Date 通过MySQ…

实战--Scrapy框架爬去网站信息

Scrapy的框架图 一、使用Strapy抓取网站一共需要四个步骤&#xff1a; (1)创建一个Scrapy项目&#xff1b; (2)定义Item容器&#xff1b; Item是保存爬取到的数据的容器&#xff0c;其使用方法和python字典类似&#xff0c;并且提供了额外保护机制来i避免拼写错误导致的未定义…

最新手写图片爬虫(针对千库网和一个福利网站)

前言&#xff1a;由于前一段时期需要从网站上扒一些图片下来&#xff0c;因为css&#xff0c;js都好扒&#xff0c;就是图片数量众多&#xff0c;需要代码实现&#xff0c;在网上找了一堆以实现的代码&#xff0c;要么没有用&#xff0c;要么功能不是自己想要的&#xff0c;干脆…

.Net修改网站项目调试时的虚拟目录

有些项目需要在IIS发布的时候&#xff0c;将网站发布到虚拟目录&#xff0c;为了保持调试和发布的路径同一&#xff0c;一般会修改VS调试的虚拟目录 一、Web应用程序 Web应用程序的修改方式非常简单&#xff0c;在解决方案资源管理器->项目>右键>属性>Web>服务…

在云服务器上建立网站

1.修改ECS实例的安全组规则&#xff0c;开放Web服务端口 新购买的ECS实例默认已开启远程管理端口&#xff08;22、3389&#xff09;&#xff0c;若希望在云服务器上建立网站&#xff0c;还需要开启80端口。 点击右侧“更多—更改安全组” 点击“新建安全组” 默认状态是没有…

阿里云服务器或者其他网站绑定域名方法

阿里云服务器或者其他网站绑定域名方法 |浏览&#xff1a;6896|更新&#xff1a;2014-04-18 17:25|标签&#xff1a;域名 1 2 3 4 分步阅读 阿里云服务器或者其他服务器绑定域名方法。添加高级网站标志&#xff0c;使域名解析。 工具/原料 服务区 已解析域名或者站点 方法/步骤…

阿里云服务器或者其他网站绑定域名方法

阿里云服务器或者其他网站绑定域名方法 |浏览&#xff1a;6896|更新&#xff1a;2014-04-18 17:25|标签&#xff1a;域名 1 2 3 4 分步阅读 阿里云服务器或者其他服务器绑定域名方法。添加高级网站标志&#xff0c;使域名解析。 工具/原料 服务区 已解析域名或者站点 方法/步骤…