После добавления всех необходимых заголовочных файлов из Crow мне, наконец, удалось запустить и получить вывод Hello World на моем локальном порту. Когда я пытаюсь отобразить веб-страницу с помощью команды mustache с помощью простого HTML-файла, программа компилируется, но я получаю только пустую страницу. Пожалуйста помоги.
main.cpp
#include <iostream>
#include "crow.h"
int main(int argc, const char * argv[]) {
crow::SimpleApp app;
crow::mustache::set_base(".");
CROW_ROUTE(app, "/")([](){
crow::mustache::context ctx;
auto main_page = crow::mustache::load("site.html");
return main_page.render();
});
app.port(18080)
// .multithreaded()
.run();
return 0;
}
сайт.html
<!DOCTYPE html>
<html>
<body>
<h1>My First Heading</h1>
<p>My first paragraph.</p>
</body>
</html>






Альтернативное решение — отображать статические файлы с помощью другого сервера, например Node, и добавлять заголовки CORS в ответы от сервера C++ с помощью Crow.
Мой опыт работы с Crow заключался в использовании Docker, и у меня была такая же проблема с загрузкой статических файлов. Чтобы загрузить html, вы не можете использовать относительный путь, вместо этого необходимо использовать абсолютный путь. Например, у меня был файл main.cpp в папке с именем «сервер», а файл index.html в папке с именем «статический». я изначально сказал
auto main_page = crow::mustache::load("../static/index.html"); // "../" means go to parent folder
Это не сработало для меня, но вы можете попробовать. Вместо этого я использовал точный каталог, который он хранил в моем контейнере Docker. "usr/src/web/mysite/static/index.html"
вы также можете попробовать команду chdir(), чтобы изменить каталог именно там, где вам нужно.