javascript - 如何使用一种主要途径创建多个HTML页面?

标签 javascript rust header rust-actix

我正在尝试创建一个具有多个社区供稿的网站,例如一个用于保龄球,另一个用于扑克,例如:localhost:8088/communities/bowling和localhost:8088/communities/poker。
我将actix用作在Rust编程语言下运行的Web服务器。
有一种方法可以使在localhost:8088/communities下运行的所有地址都遇到相同的Web文件,以便我只能拥有一条主要路由?
然后存储其他标题,例如/bowling或/poker,以便我可以提交对相关帖子供稿的服务器单独请求?调用网页时,也许可以将其他标题信息保存在javascript变量中? -和我进入/poker一样,一个名为communityType的变量被设置为poker。我该怎么做?
因为任何人都不可能为约100个不同社区中的每个社区制作HTML页面。
我在这里先向您的帮助表示感谢!

最佳答案

我对这个 crate 不是很熟悉,但是基于docs,您似乎可以使用#[get("/route/this/function/will/support")]定义如何处理路线。假设我写的正确,这应该以一条小消息回应,告诉您使用时所处的社区路线。

use actix_web::{get, web, App, HttpServer, Responder};

#[get("/communities/{name}")]
async fn communities_route(web::Path(name): web::Path<String>) -> impl Responder {
    format!("This is the page for the {:} community!", name)
}
您也可以扩展它以使用#[get("/communities/{name}/forums")]#[get("/communities/{name}/{file}")]这样的路由来处理所有社区在每个社区基础上的通用路由。

编辑:
听起来,在初始化.service(communities_route)以使用App时,您还需要在主函数中包括#[get(x)]。如果直接配置服务,则还可以更好地控制路由的处理方式。
这是他们的hello world example中的一个片段。只要您访问"/index.html"以外的任何路由,它就似乎在服务器上打印请求。
async fn index(req: HttpRequest) -> &'static str {
    println!("REQ: {:?}", req);
    "Hello world!"
}

App::new()
.service(web::resource("/index.html").to(|| async { "Hello world!" }))
.service(web::resource("/").to(index))
我建议在github上浏览他们的examples。看起来他们为许多不同的用例提供了一堆简洁的示例。

关于javascript - 如何使用一种主要途径创建多个HTML页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64188566/

相关文章:

c - 在参数列表中声明的“struct”

apache - 使用 deflate 在 Apache 中缓存图像、JS 和 CSS

python - 打开带有明确 header 的 Firefox

javascript - 如何将 Ruby session 变量传递给 JavaScript 标签

rust - 从 Rust 中的任务调用闭包

user-interface - 冰镇 : How to create window in fullscreen?

arrays - 更有效地初始化数组持有结构

javascript - 合并排序 : merge function array index zero returning multiple indexes

javascript - 下划线相当于 _.pick 数组

javascript - 使用 $.when().then() 函数时遇到问题