使用的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.