我正在尝试使用 Rust Rocket 框架作为托管我的网站的后端,但我正在努力提供基本的 HTML 文件及其关联文件。
就事情而言,这是我的“网站”的代码。我真的不确定如何做到这一点,作为后端开发的新手,我想我会看看这里是否有答案。
#[macro_use] extern crate rocket; use std::fs::File; use rocket::{response::{Redirect}, fs::FileServer}; #[get("/")] fn index() -> Redirect { let redirect = Redirect::to(uri!("/home")); redirect } #[launch] fn rocket() -> _ { rocket::build().mount("/", routes![index]) }
我不确定构建前端文件的最佳方法是什么。任何建议/帮助表示赞赏。请对我宽容一些,因为我在后端开发方面缺乏经验。
我已经尝试了 GitHub 上列出的静态示例,但是,我认为遇到了问题:我可以查看 HTML 页面,但图像、CSS 和 JavaScript 文件无法正确提供。
我想出了一个更简单的解决方案。您可以简单地使用
FileServer
来托管您的静态文件,如下所示:因此,每当我的 HTML 模板尝试调用 CSS 文件时,Rocket 都会从
/templates/css
目录提供 CSS 文件。这是最适合我的代码。我想为那些可能正在努力进入后端 Web 开发(尤其是 Rust)的人解释一下这一点。
我将从第一部分开始。
^ 这只是我们对我需要使用的内容的声明。
^ 此部分用于重定向空白索引 URL,以不给出 404,并转到末尾带有“/home”的 URL。这只是我个人的喜好,但现在你也知道怎么做了!
最后,我通过查看 NamedFile 的 Rust 分析器示例来确定如何具体打开不同的文件。
^ 此部分用于处理其他文件,例如 HTML 文档中链接的 CSS 和 JavaScript。我想这不是一个非常安全的方法,但对于投资组合网站来说,我不需要非常强大的安全性。
^ 最后,您只需安装路线即可。这样做似乎对我有用。我相信更聪明、更有经验的人可以用比我更优雅的方式解释它,但如果你像我一样处于紧要关头,并且你无计可施,希望这是一个急需的救生圈当你溺水时。