Crow C++框架HTML页面在Xcode上编译后为空白

xpszyzbs  于 2023-03-04  发布在  其他
关注(0)|答案(3)|浏览(272)

在添加了所有必要的头文件从Crow,我终于设法运行,并获得Hello World输出在我的localhost端口.当我试图使用mustache命令呈现一个网页与一个简单的HTML文件,程序编译,但我只得到一个空白页.请帮助.

    • 主. 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>
7qhs6swi

7qhs6swi1#

我使用Crow的经验是使用Docker,我在加载静态文件时也遇到了同样的问题。要加载html,不能使用相对路径,而必须使用绝对路径。例如,我的main.cpp文件在名为“server”的文件夹中,index.html文件在名为“static”的文件夹中。我最初说

auto main_page = crow::mustache::load("../static/index.html"); // "../" means go to parent folder

这对我不起作用,但你可以继续尝试。相反,我使用了它存储在我的Docker容器中的确切目录。“usr/src/web/mysite/static/index.html”

dldeef67

dldeef672#

实际上,你可以简单地创建一个名为“template”的文件夹,把你所有的HTML文件放在那里,然后按名称加载它们。https://crowcpp.org/master/getting_started/a_simple_webpage/

bfhwhh0e

bfhwhh0e3#

另一种解决方案是使用另一个服务器(如Node)呈现静态文件,并使用Crow在来自C++服务器的响应中添加CORS标头。

相关问题