spa-server

静态 web 页面托管服务
授权协议 MIT
开发语言 Rust
所属分类 Web应用开发、 WEB服务/SOAP/SOA
软件类型 开源软件
地区 国产
投 递 者 董弘新
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

本软件是用来创建一个托管静态web页面的服务,目标是使单页应用部署简便、开销少、性能高。

  • 基于 Hyper 和 warp 构建。
  • SSL 基于 Rustls。
  • 服务器端缓存、客户端缓存(Cache-Content)、Gzip压缩。
  • SPA 版本管理, 仅需要一个 http 请求就能实现版本回滚和更新。
  • 支持热更新(Mac and Linux)。
  • 支持 CORS 跨域
  • http/https 同时服务(http 也可返回 redirect https)。
  • 支持 Docker 镜像(压缩后大小:32M)

服务跑起来

配置文件说明: config.release.conf.

可以通过修改环境变量 SPA_CONFIG=${config_path}, 来更改配置文件地址。

通过源码

git clone git@github.com:timzaak/spa-server.git
cd spa-server
git submodule init && git submodule update
cp config.release.conf config.conf # please remember to change `file_dir` in config.conf
cargo run --bin spa-server 

通过镜像

docker run -d -p 80 -p 443 -v $HOST_VOLUME:/data -v $CONFIG:/config.conf timzaak/spa-server:latest

如何部署静态文件

当服务跑起来后,可将 SPA 文件夹复制到 admin server 指定文件夹, (api doc).

scp $SPA_DIRECTORY user@ip:$(curl "http://$ADMIN_SERVER/upload/path?domain=$DOMAIN" -H "Authorization: Bearer $TOKEN")

等文件传输完毕, 发起 HTTP 请求更新 SPA 版本。

curl "http://$ADMIN_SERVER/update_version?domain=$DOMAIN&version=$VERSION" -H "Authorization: Bearer $TOKEN"

至此,部署完毕!

  • 一、背景 常规情况下,我们加载页面的时候,浏览器渲染包含:html解析、dom树构建、cssom构建、js解析、布局、绘制。当解析到js的时候,才会去触发vue的渲染,然后元素挂载到id为app的div上,这个时候才能看见内容。虽然vue的渲染机制很快,但我们也有可能看见白屏状况。为了使用户在加载页面的时候不需要过长的等待,解决spa白屏情况,我们可以采用预渲染手段。 三种不同的渲染方式的区别:

  • 版本依赖 vue3、vue-cli4、 vue-router4、swiper6、prerender-spa-plugin3、image-webpack-loader7 "dependencies": { "core-js": "^3.6.5", "image-webpack-loader": "^7.0.1", "prerender-spa-plugin": "^3.

  • 问题描述 nginx已经加了 location / { try_files $uri $uri/ /index.html; } 没有使用prerender-spa-plugin插件之前history正常,增加插件后刷新文件加载异常 1.vue.config文件 /* * @Descripttion: * @version: * @Author: HHH * @

  • single-spa-vue 的使用方式 如何使用single-spa 先了解一下2个api: singleSpa.registerApplication: 这是注册子项目的方法。参数如下: appName: 子项目名称 applicationOrLoadingFn: 子项目注册函数,用户需要返回 single-spa 的生命周期对象。后面我们会介绍single-spa的生命周期机制 activi

  • 概述 本文主要的内容是通过之前使用的prerender-spa-plugin插件的源码阅读,来看下我们应该如何编写一个webpack的插件,同时了解下预渲染插件到底是如何实现的。 这个内容其实已经在使用prerender-spa-plugin里面有所涉及了,这一章的内容算是对之前一篇文章的补充和拓展,详细介绍下Webpack的插件机制到底是如何运行的,之前写的简单的替换的插件生效的原理到底是什么。

  • vue项目在npm run dev时报错 npm ERR! book_view@1.0.0 dev: webpack-dev-server --inline --progress --config build/webpack.dev.conf.js 解决这类问题主要分两种情况 这个项目已经构建好的项目,你只是从git、snv或者其他地方引入,别人能运行你不能运行 这是一个新构建的vue项目 第一种

  • 转发:https://www.npmjs.com/package/server-static static-server 静态文件服务器,支持SPA,类似于live-server,支持自定义ajax请求路径mock数据,支持模拟ajax跨域请求进行接口调试 安装 npm install server-static -g 安装完成 可通过 static-server --help 或者 static

 相关资料
  • Web/云/静态主机托管工具 AWS [$] Heroku [free to $] DigitalOcean [$] Modulus [$] DIVSHOT [free to $] netlify [free to $] surge [free to $]

  • 日安 我不是一个专业的程序员,我没有正式学习,我目前正在自学。所以我的问题可能看起来很愚蠢,或者不明白答案。请原谅我。 好的,问题来了: 我的例子将是一个内部团队午餐花名册,这将是当地的页面,用户可以设置午餐时间,不会改变,但会在一天结束时重置。 可以通过打开页面来查看所有更改。 我想知道应该是java和html,还是应该用什么语言创建这样的页面。 诚挚的问候

  • 问题内容: 我正在尝试将我一直在工作的Django网站从开发服务器阶段移至真正的托管环境。目前,我只是在我的个人计算机上托管。我已经安装了Apache和mod-wsgi,但是在获取静态文件时遇到了问题。我很确定这与Apache有关。这是我的站点配置文件: 我正在尝试从我使用静态别名的目录中托管文件。当我尝试加载网站时,所有内容都出现了,但是没有CSS。另外,当我访问我的URL www.server

  • 为了提供诸如图像、CSS 文件和 JavaScript 文件之类的静态文件,请使用 Express 中的 express.static 内置中间件函数。 此函数特征如下: express.static(root, [options]) The root argument specifies the root directory from which to serve static assets.

  • 问题内容: 我已经使用GitHubPages托管了一个静态HTML页面。我需要在我的静态页面上添加“发送反馈”功能,用户可以在其中输入他的姓名,电子邮件,评论并单击“提交”按钮。这会将包含内容的电子邮件发送到我的电子邮件地址。这可以在GitHub上的静态HTML页面中以某种方式工作吗?GitHubPages是否支持此邮件功能? 我还想知道GitHub Pages服务器可以基于其使用的基础Web服务

  • 前一节的准备工作做好之后,我们可以开始开发这个演示应用了。本节,我们要向开发动态页面迈出第一步:创建一些 Rails 动作和视图,但只包含静态 HTML。Rails 动作放在控制器中(MVC 中的 C,参见 1.3.3 节),其中的动作是为了实现相关的功能。第 2 章已经简要介绍了控制器,全面熟悉 REST 架构之后(从第 6 章开始),你会更深入地理解控制器。回想一下 1.3 节介绍的 Rail