C++使用Crow框架自定义的资源路径

使用的Crow1.0 / GCC 11.3

是一个牛b高性能异步web框架(类似python的flask),易上手也好用(开头小吹一波crow)

官方提供的静态资源获取


代码呢?不需要写,默认就是以static为静态资源目录的(如下)

编译后要如何访问这个路径的资源呢(注:可执行文件和resource这个目录在一起)

在浏览器输入 IP 或 域名:端口/static/资源   

如下面这个例子:

好耶资源访问成功惹!!!,但是我想去除这个该死的/static/怎么办啊

好,接着看下面

自定义静态资源目录


 我这里自定义了一个叫做public的目录(如下)

但是默认一定是不能通过xxxxx:xx/public/bigif1.gif给你访问的(这最坏了!)

什么你不信?有图有真相

可恶啊!难道我的crud生涯就此结束了?(x

没有解决不了的问题,只有偷懒的码农

这里我写了这么一段代码

#include <filesystem>
#include "crow.h"

int main(int argc,char* argv[]){
    crow::SimpleApp app;

    // 添加路由处理程序
    CROW_ROUTE(app, "/test")
        ([]() {
        crow::response response;
        response.write("test response");
        return response;
            });
    
    CROW_ROUTE(app, "/<path>")([&](const std::string& p) {
        crow::response response;

        std::string path{ "./public/" + p };

        if (!std::filesystem::exists(path)) {
            response.set_header("Content-Type", "application/json");
            response.code = 404;
            response.write("Not Found");
            return response;
        }

        response.set_static_file_info(path);
        return response;
    });

    app.port(8299).multithreaded().run_async();
}

 ※注意!这个/<path>的路由必须在所有路由的最下面(不然会覆盖之前的路由)

看看效果

好耶!已经解决了,这个该死的static消失了,如果有favicon.ico这个文件的话,crow框架的web程序还会有图标喔!有个值得注意的是问题是,每次访问都是从服务器上下载的具体看自己如何修改了

最后


送我一直使用的那个表情包


crow官网:Static Files - Crow

crow github: GitHub - CrowCpp/Crow: A Fast and Easy to use microframework for the web.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值