有没有一种干净的方法可以从Rust Rocket后端服务React构建

尼尔·贾格

通常,React版本只是像nginx这样的Web服务器中的静态文件提供,但是我想使用React版本中的Rust Rocket来提供前端静态文件,我正在努力寻找一种不错的方法,这是我的路线已经设置

#[get("/")]
 fn index() -> io::Result<NamedFile> {
NamedFile::open("build/index.html")
}

#[get("/<file..>", rank = 2)]
fn build_dir(file: PathBuf) -> Option<NamedFile> {
    NamedFile::open(Path::new("build/").join(file)).ok()
}

#[get("/static/<file..>")]
fn static_dir(file: PathBuf) -> Option<NamedFile> {
    NamedFile::open(Path::new("build/static/").join(file)).ok()
}

fn rocket() -> rocket::Rocket {
    rocket::ignite()
        .mount("/", routes![index, build_dir])
        .mount("/static", routes![static_dir])
}

这可行,但是它不提供favicons或manifest.json文件之类的功能,我宁愿不为每个文件添加特定的路由,有人能以更好的方式解决此问题吗?

请在此处查看项目代码

亚米瑞

/<path..>模式是递归的,您不需要包含子文件夹。只要为您的整个构建服务/,它就会按预期工作。

唯一需要担心的是从模糊的页面路径(如)重定向/

#![feature(proc_macro_hygiene, decl_macro)]

use std::{io, path::{Path, PathBuf}};

use rocket::{get, routes, response::{NamedFile, Redirect}};

#[get("/")]
fn index() -> Redirect {
    Redirect::permanent("/index.html")
}

#[get("/<file..>")]
fn build_dir(file: PathBuf) -> io::Result<NamedFile> {
    NamedFile::open(Path::new("build/").join(file))
}

fn rocket() -> rocket::Rocket {
    rocket::ignite()
        .mount("/", routes![index, build_dir])
}

fn main() {
    rocket().launch();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

有没有一种干净的方法可以有条件地为同一React Router路由加载和渲染不同的组件?

来自分类Dev

有没有一种方法可以获取作为属性的构建状态?

来自分类Dev

有没有一种方法可以按角度对服务进行分组?

来自分类Dev

有没有一种方法可以轻松跟踪多个OSGi服务?

来自分类Dev

有没有一种方法可以在React组件表上添加边框?

来自分类Dev

有没有一种方法可以避免在Gatsby中构建具有某些路径的页面?

来自分类Dev

有没有一种方法可以自动构建一个崇高的项目?

来自分类Dev

有没有一种方法可以更改许多构建定义的构建控制器?

来自分类Dev

有没有一种方法可以在React功能组件中进行一次api调用?

来自分类Dev

有没有一种方法可以阻止角度服务注入,直到服务的异步数据加载完毕

来自分类Dev

有没有一种方法可以使systemd服务(服务)停止时关闭系统?

来自分类Dev

有没有一种方法可以在构建时停止VS2015 Typescript编译?

来自分类Dev

有没有一种方法可以重复使用构建器代码进行改造

来自分类Dev

有没有一种方法可以强制Android ndk静态库之间的构建顺序?

来自分类Dev

TFS 2013自动构建:有没有一种方法可以从src文件夹运行测试

来自分类Dev

有没有一种方法可以用雄辩的基于输入的参数构建查询?

来自分类Dev

有没有一种方法可以吸引开发人员构建的受众?

来自分类Dev

有没有一种方法可以使用bazel构建测试而不运行它们?

来自分类Dev

有没有一种方法可以强制msbuild只构建x64?

来自分类Dev

有没有一种方法可以使用动态字段名称构建类型接口?

来自分类Dev

有没有一种方法可以用雄辩的基于输入的参数构建查询?

来自分类Dev

有没有一种方法可以升级Windows构建版本而不下载新的ISO

来自分类Dev

有没有一种方法可以从build.phonegap.com构建流星移动应用程序?

来自分类Dev

有没有一种方法可以测试我为正确的依赖关系而构建的软件包?

来自分类Dev

有没有一种方法可以更改XCode 7.1中的默认构建设置?

来自分类Dev

有没有一种方法可以在Ionic / cordova上定义Android / iOS构建版本?

来自分类Dev

有没有一种方法可以在构建之前向用户显示动态信息?

来自分类Dev

有没有一种方法可以确定Java中的应用程序服务器名称

来自分类Dev

进程启动后,有没有一种方法可以阻止Eclipse发布到服务器?

Related 相关文章

  1. 1

    有没有一种干净的方法可以有条件地为同一React Router路由加载和渲染不同的组件?

  2. 2

    有没有一种方法可以获取作为属性的构建状态?

  3. 3

    有没有一种方法可以按角度对服务进行分组?

  4. 4

    有没有一种方法可以轻松跟踪多个OSGi服务?

  5. 5

    有没有一种方法可以在React组件表上添加边框?

  6. 6

    有没有一种方法可以避免在Gatsby中构建具有某些路径的页面?

  7. 7

    有没有一种方法可以自动构建一个崇高的项目?

  8. 8

    有没有一种方法可以更改许多构建定义的构建控制器?

  9. 9

    有没有一种方法可以在React功能组件中进行一次api调用?

  10. 10

    有没有一种方法可以阻止角度服务注入,直到服务的异步数据加载完毕

  11. 11

    有没有一种方法可以使systemd服务(服务)停止时关闭系统?

  12. 12

    有没有一种方法可以在构建时停止VS2015 Typescript编译?

  13. 13

    有没有一种方法可以重复使用构建器代码进行改造

  14. 14

    有没有一种方法可以强制Android ndk静态库之间的构建顺序?

  15. 15

    TFS 2013自动构建:有没有一种方法可以从src文件夹运行测试

  16. 16

    有没有一种方法可以用雄辩的基于输入的参数构建查询?

  17. 17

    有没有一种方法可以吸引开发人员构建的受众?

  18. 18

    有没有一种方法可以使用bazel构建测试而不运行它们?

  19. 19

    有没有一种方法可以强制msbuild只构建x64?

  20. 20

    有没有一种方法可以使用动态字段名称构建类型接口?

  21. 21

    有没有一种方法可以用雄辩的基于输入的参数构建查询?

  22. 22

    有没有一种方法可以升级Windows构建版本而不下载新的ISO

  23. 23

    有没有一种方法可以从build.phonegap.com构建流星移动应用程序?

  24. 24

    有没有一种方法可以测试我为正确的依赖关系而构建的软件包?

  25. 25

    有没有一种方法可以更改XCode 7.1中的默认构建设置?

  26. 26

    有没有一种方法可以在Ionic / cordova上定义Android / iOS构建版本?

  27. 27

    有没有一种方法可以在构建之前向用户显示动态信息?

  28. 28

    有没有一种方法可以确定Java中的应用程序服务器名称

  29. 29

    进程启动后,有没有一种方法可以阻止Eclipse发布到服务器?

热门标签

归档