3个版本
新 0.2.7 | 2024年8月12日 |
---|---|
0.2.6 | 2024年8月9日 |
#491 in HTTP服务器
每月下载 635次
22KB
378 行
actix-web-nextjs
actix-web-nextjs是一个用于托管静态导出Next.js应用程序的Actix Web服务。这是从actix-web-lab中的SPA功能派生出来的,并增加了对Next.js动态路由的支持。
概述
actix-web-nextjs
服务使托管静态导出的Next.js应用程序变得简单。主要特性包括
- 索引文件回退:自动为未知路由提供指定的索引文件,确保SPA导航的流畅。
- 静态文件处理:高效地从一个指定的目录提供静态资源。
- 动态路由支持:将Next.js的动态路由(如
/pet/dog/husky
)转换为/pet/[petType]/[breed].html
。
工作原理
服务搜索由Next.js生成的_buildManifest.js
文件,并从中构建一个路由树。例如,请求/pet/dog/husky
解析为/pet/[petType]/[breed].html
。当发起一个新的带有特定路由的请求时,服务会尝试根据动态路由结构查找并提供服务对应的文件。如果找不到文件,则默认提供索引文件。
示例用法
use actix_web::App;
use actix_web_nextjs::spa;
let app = App::new()
// API routes and other services
.service(
spa()
.index_file("dist/index.html")
.static_resources_mount("dist")
.static_resources_location("/")
.finish()
);
如何安装
将actix-web-nextjs
添加到您的依赖项
[dependencies]
actix-web-nextjs = "0.2.7"
actix-web-nextjs
公开以下功能标志
wildcards
:启用对通配符路由的支持(默认启用)。
许可证
根据您的选择,在Apache许可证2.0或MIT许可证下授权。
除非您明确说明,否则您提交的任何贡献,根据Apache-2.0许可证定义,将如上双重授权,没有任何额外的条款或条件。
依赖项
~17–29MB
~516K SLoC