rust - 为什么我的 Rust 代码无法加载 tera 模板?

标签 rust rust-cargo tera

我有一个 Rust 应用程序 ( https://github.com/Riduidel/rrss2imap ),当它在我的树莓派上运行时,失败并显示以下错误消息

pi@raspberrypi-server:~/rrss2imap $ ./rrss2imap-armv7-unknown-linux-gnueabihf-debug run
[2019-09-02 11:46:08.847444 +02:00] INFO [rrss2imap::feed] src/feed.rs:74: Reading feed from http://tontof.net/?rss
[2019-09-02 11:46:09.203357 +02:00] INFO [rrss2imap::feed] src/feed.rs:138: Feed date is 2019-09-02 09:46:09 while previous read date is 2019-07-11 17:03:36
[2019-09-02 11:46:09.203874 +02:00] INFO [rrss2imap::feed] src/feed.rs:143: There should be new entries, parsing HTML content
[2019-09-02 11:46:09.211703 +02:00] INFO [rrss2imap::feed] src/feed.rs:74: Reading feed from https://www.brothers-brick.com/feed/
[2019-09-02 11:46:10.897497 +02:00] INFO [rrss2imap::feed] src/feed.rs:138: Feed date is 2019-09-02 02:00:37 while previous read date is 2019-07-11 14:40:44
[2019-09-02 11:46:10.898026 +02:00] INFO [rrss2imap::feed] src/feed.rs:143: There should be new entries, parsing HTML content
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error(Msg("Template \'message.html\' not found"), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })', src/libcore/result.rs:999:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

真正奇怪的是,当我从 cargo run 运行相同的代码时,它就像一个魅力。

那么到底出了什么问题呢?我该如何解决?

最佳答案

您的程序找不到模板文件。

你有两个选择:

  • 将模板目录与二进制文件一起发送,并将它们放在服务器上,二进制文件从中加载模板的位置。

  • 使用 include_str 将模板静态包含到二进制文件中, 然后用 Tera::add_raw_template 加载它们.

PS:您还可以使用像 include_dir 这样的箱子将整个目录嵌入到您的应用程序中.

关于rust - 为什么我的 Rust 代码无法加载 tera 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57760236/

相关文章:

c++ - 如何在 C++ 中模拟 Rust 的 Mutex<Object>?

template-engine - 如何使用基于 Rust 的 Zola/Tera 过滤分类法?

rust - 如何在Rust中使用Tera创建数组?

rust - 类型之间的 + 操作数是什么意思?

rust - 将不可复制的拥有值传递给函数后尝试使用它们时会出现生命周期问题

types - 如何使用类型系统在解析树中编码父子约束?

rust - 究竟什么被认为是对库箱的重大改变?

rust - 如何指向crates.io中的crate的.crate文件的本地副本?

rust - 无法在 macOS 10.12 上编译 Cargo,因为找不到 SSL