我正在尝试制作一个与 JavaScript 交互并将 JSON 数据发送到 Rust 函数的网页,然后呈现www文件。我的项目结构是:
/..
/src
/www
|___index.html
|___/css
| |__style.css
|
|___/javascript
| |__javascript-supp.js
|___/images
|__myImg.png
main.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");
}
索引.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 文件。