微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

我正在尝试创建一个具有多个社区供稿的网站,例如一个用于保龄球,另一个用于扑克,例如:localhost:8088 / communities / bowling和localhost:8088 / communities / poker。

我将actix用作在Rust编程语言下运行的Web服务器。

有没有一种方法,使在localhost:8088 / communities下运行的所有地址都遇到相同的Web文件,以便我只能拥有一条主要路由?

然后存储/ bowling或/ poker等附加标头,以便我可以将对相关帖子供稿的单独请求提交给服务器?调用网页时,也许可以将其他标题信息保存在javascript变量中? -和我进入/ poker一样,一个名为communityType的变量被设置为poker。我该怎么做?

因为没有任何人可以为约100个不同社区中的每个社区制作HTML页面

谢谢您的帮助!

解决方法

我对这个板条箱不是很熟悉,但是基于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。看起来他们为许多不同的用例提供了一堆简洁的示例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?