gpt4 book ai didi

rust - 如何使用 Nickel 框架呈现网页?

转载 作者:行者123 更新时间:2023-11-29 08:33:09 25 4
gpt4 key购买 nike

我正在尝试制作一个与 JavaScript 交互并将 JSON 数据发送到 Rust 函数的网页,然后呈现 www 文件。我的项目结构是:

/..
/src
/www
|___index.html
|___/css
| |__style.css
|
|___/javascript
| |__javascript-supp.js
|___/images
|__myImg.png

ma​​in.rs

use nickel::{Nickel, HttpRouter, StaticFilesHandler, NickelError, Request, Response,
MiddlewareResult};
use std::collections::HashMap;

fn tmpl_handler<'a>(_: &mut Request, res: Response<'a>) -> MiddlewareResult<'a> {
let mut data = HashMap::<&str, &str>::new();

// add data for render
// name = {{ name }} in template
data.insert("name", "Nickel");

res.render("www/", &data)
}

fn main() {
let mut server = Nickel::new();

server.utilize(StaticFilesHandler::new("www/"));
server.get("/login/*", tmpl_handler);

server.listen("127.0.0.1:6767");
}

index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src=javascript/javascript.js></script>
<link rel="stylesheet" type="text/css" href="css/style.css">
<title>Encryptor Test</title>
</head>

<body>
<div class=header>
<h1>
Hello {{ name }}!
</h1>
</div>
<div class=main-row>

<div class="col-3 menu">
<ul>
<li>Login</li>
<li>Download File</li>
<li>Upload File</li>
<li>Exit</li>
</ul>
</div>

<div class="col-9 context-area">
</div>
</div>
<div class=footer></div>
</body>
</html>

这段代码一直有效到:

server.utilize(StaticFilesHandler::new("www/"));

我想发送数据 $name = "Nickel" 并呈现 index.html。

如何呈现整个 www/ 目录,以便在访问 127.0.0.1:6767/login 后整个页面都在那里(JS、CSS 和图像)而不仅仅是明文?

我可以根据要求提供 CSS 文件。

最佳答案

您必须在 GET 请求后重新使用 www 目录:

server.get("/login", tmpl_handler);
server.utilize(StaticFilesHandler::new("www/"));

正在工作......即使它看起来不太好。

关于rust - 如何使用 Nickel 框架呈现网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44766393/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com