静态托管

我们最常接触到的静态托管是github pages,它的常见工作模式是在github上创建一个仓库,使用hexo类的工具初始化仓库,编写markdown文件,生成静态页面,推送到github上完成页面更新,比如https://blog.nimblex.cn/就是这样一个静态的网站。

局限性

原生静态托管的局限性在于它的更新通常需要重新将markdown文件编译程静态html,然后再发布到托管站。这是一个重新构建的过程,对于非程序员群体来说是有门槛的。
 

常见动态web网站

一般用户通常会使用类似csdn、新浪博客之类的站点来构建自己的博客,用户只需要通过一个富文本编辑器编辑文章内容,提交即可发布。架设这样一个网站,通常需要后台支持,例如需要后台提供新增、删除、查询博客的接口,通常还需要提供登录注册鉴权等功能。这已经超出传统静态托管的范围了。
 
分析下动态web网站相对于静态网站有哪几点特殊能力
  • 包含一个后台服务例如以SpringBoot编写的服务、以Flask编写的服务,这些服务提供一系列接口供前端调用
  • 包含一个数据库,这个数据库存储网站内容、配置信息
  • 可能会包含一些静态文件或者对象存储服务用来存储图片
 
一般需要维护这样一个动态网站需要前端开发、后台开发或者一个全栈开发工程师的配合,即需要前后端的能力。另外,要架设Spring或者Flaks服务,需要提供相应的运行时能力,换言之需要租服务器,像github pages这种静态托管站是不提供这个能力的。

MemfireCloud的增强

MemfireCloud是一个助力快速开发的云平台可以轻松构建小程序、Web网站、移动应用。

MemfireCloud可以提供什么

MemFire Cloud提供哪些能力呢?目前我关注如下这些:
  1. 云数据库
  2. 静态托管服务
  3. 对象存储(兼容S3)
  4. 提供一个supabase JS sdk ,可以访问上述云数据库、对象存储等能力。注意这是一个JS sdk
  5. 内置登录注册、用户管理等功能

王炸组合

我们看下上文中常见动态网站需要的能力
  1. 接口能力
  2. 数据库
  3. 静态文件存储服务
 
在MemfireCloud平台上,这些通通都可以实现,而且是仅仅通过html + js就可以实现。放开脑洞,再加上静态托管,我们就可以直接构建动态网站了,不要SpringBoot、不要Flask、不要NodeJS,之要MemfireCloud就够了!!!

让静态托管动起来

我就用MemfireCloud构建并托管了一个类似Flomo的web应用(http://cmsrcpa5g6h1f588b1j0.app.memfiredb.cn/),这个应用其实是一个思绪整理工具。这个应用目前的主要功能是:
  • 用户可以在后上角输入想法内容,打上标签,保存想法
  • 同类标签会进行分归类
  • 支持回收站
  • 支持多用户注册登录访问
 
大家从域名可以看到,这是一个公网服务且利用了MemfireCloud的静态托管服务,但是我们完全看不出来它是一个静态网站,它真的很动态!

它是怎么实现的

完全不像是github pages中常见的hexo等静态博客工具,这个网站是用React开发的单页面应用,在开发的过程中我完全就是把它当作一个动态应用来开发的,antd、Echarts之类的组件库直接用起来。下面我简要介绍其中的一些实现。

数据库定义

数据库定义直接使用MemfireCloud的数据库编辑页面进行

增删改查

使用Supbase JS sdk可以让js直接操作数据库,这块大家如果感兴趣可以通过文中链接查看他们的官网教程,使用起来也是非常简单的,非常类似于Python的SQLalchemy、Java的Mybatis等ORM框架,这里我以新增为例。
 
thoughts是定义的数据表,直接使用js api往库里面加数据。其他的操作也是类似的。
        const {data, error} = await supabase
.from('thoughts')
.insert(thoughts)
.select('id')

静态托管

网站开发好了,需要将其发布到线上,也是很简单,直接将React打包并压缩成ZIP文件,上传到MemfireCloud即可访问在线网站了。

思考

MemfireCloud开发者一种能力,可以一站式开发、部署应用,特别是给予前端同学一种摆脱后端同学依赖的能力,不需要学习后端开发语言,就可以成为一名全栈开发工程师,这是MemfireCloud平台对每个前端开发工程师的赋能!这个意义是非常深远的,感谢MemfireCloudu团队。

MemfireCloud让静态托管页面动起来!的更多相关文章

  1. 玩转HTML5移动页面(动效篇)

    原文:http://www.grycheng.com/?p=458 作为一名前端,在拿到设计稿时你有两种选择: 1.快速输出静态页面 2.加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有 ...

  2. 转:玩转HTML5移动页面(动效篇)

    作为一名前端,在拿到设计稿时你有两种选择: 1.快速输出静态页面 2.加上高级大气上档次狂拽炫酷屌炸天的动画让页面动起来 作为一个有志向的前端,当然是选2啦!可是需求时间又很短很短,怎么办呢? 这次就 ...

  3. 如何在云开发静态托管中使用Hugo

    如何在云开发静态托管中使用Hugo 介绍 hugo是一个用Go编写的静态站点生成器,由于具有丰富的主题资源和有比较丰富的主题资源和较好的生成速度. 云开发(CloudBase)是一款云端一体化的产品方 ...

  4. 如何在云开发静态托管中使用Jekyll

    如何在云开发静态托管中使用Jekyll 介绍 Jekyll 是一个简单的博客形态的静态站点生产机器,通过它,我们可以搭建一个完整的可发布的静态博客网站. Jekyll 也可以运行在 GitHub Pa ...

  5. 如何将你的 Vue.js 项目部署在云开发静态托管之上

    云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML.CSS.JavaScript.字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持. 在云开发静态托 ...

  6. 利用PHP的ob函数实现生成静态化页面

    之前用过一些开源的CMS管理系统,当时就很好奇后台中的生成HTML静态文件是怎么实现的.今天和同事讨论了下,没想到同事之前做过这类的生成静态页面的功能,果断向他请教了下. 经他讲解后,才知道其实生成静 ...

  7. 用php生成静态html页面(通用2种方法)

    因为每次用户点击动态链接的时候都会对服务器发送数据查询的要求 对于一个访问量可能达百万千万级别的网站来说 这无疑是服务器一个大大的负担 所以把动态数据转换成静态html页面就成了节省人力物力的首选 因 ...

  8. 玩转HTML5移动页面(动效篇)(转载)

    本文转载自: 玩转HTML5移动页面(动效篇)

  9. 从零开始学习jQuery (七) jQuery动画-让页面动起来!

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 开发人员一直痛疼做动画. 但是有了jQuery你 ...

  10. JSP生成静态Html页面

    [转载]JSP生成静态Html页面 在网站项目中,为了访问速度加快,为了方便百度爬虫抓取网页的内容,需要把jsp的动态页面转为html静态页面.通常有2种常用的方式: 1.伪静态,使用URL Rewr ...

随机推荐

  1. useMemo与useCallback

    useMemo与useCallback useMemo和useCallback都可缓存函数的引用或值,从更细的角度来说useMemo则返回一个缓存的值,useCallback是返回一个缓存函数的引用. ...

  2. Js中fetch方法

    Js中fetch方法 fetch()方法定义在Window对象以及WorkerGlobalScope对象上,用于发起获取资源的请求,其返回一个Promise对象,这个Promise对象会在请求响应后被 ...

  3. Oracle数据库报ORA-01078和LRM-00109错误解决方法

    创建实例后,进入sqlplus启动报错:     sqlplus / as sysdba;     SQL*Plus: Release 11.1.0.6.0 - Production on Wed A ...

  4. win32-CreateDIBSection的使用

    使用CreateDIBSection 可以创建一个设备无关位图 #include <windows.h> using namespace std; int main() { HDC hdc ...

  5. MacBook M1 VulnHub靶机搭建(arm Mac搭建x86 ova镜像)

    个人博客: xzajyjs.cn 自从换了M1系的arm Mac后,原本的Vulnhub上的几乎所有靶场按照之前的方法都无法正常搭建了(VirtualBox),在外网论坛上找了一遍,有一个相对麻烦一些 ...

  6. Flask遇到的坑及解决办法

    flask_script 在使用第三方包flask_script时,报一下错误 ModuleNotFoundError: No module named 'flask._compat' 问题时flas ...

  7. 用ABP Suite创建Blazor Server的应用程序

    这个应用程序我们取名为BlazorOne,意思是集AuthServer.HttpApi Host和Blazor Server3个功能于一体的应用程序.因为ABP Suite支持另外一种模式,是把上述3 ...

  8. 【Azure Redis 缓存】Redission客户端连接Azure:客户端出现 Unable to send PING command over channel

    问题描述 Redission客户端连接Azure:客户端出现 Unable to send PING command over channel ... ...  io.netty.channel.St ...

  9. 【Azure 应用服务】Azure Function 部署槽交换时,一不小心把预生产槽上的配置参数交换到生产槽上,引发生产错误

    问题描述 部署Function代码先到预生产槽中,进行测试后通过交换方式,把预生产槽中的代码交换到生产槽上,因为在预生产槽中的设置参数值与生产槽有不同,但是在交换的时候,没有仔细检查.导致在交换的时候 ...

  10. 【Azure 环境】 介绍两种常规的方法来监视Window系统的CPU高时的进程信息: Performance Monitor 和 Powershell Get-Counter

    问题描述 部署在Azure上的VM资源,偶尔CPU飙高,但是发现的时候已经恢复,无法判断当时High CPU原因. 在Windows系统中,有什么方式能记录CPU被进程占用情况,查找出当时是排名前列的 ...