[英]vibed: Can't get routing work
我正在努力工作非常简单的振动路由 :
void main()
{
config = new Config();
auto router = new URLRouter;
router.get("/*", serveStaticFiles(roothtml ~ "\\"));
router.get("files/*", serveStaticFiles("./files/"));
router.any("*", &accControl);
router.any("/checkAuthorization", &checkAuthorization);
router.any("/login", &login);
router.post("/logout", &logout);
router.any("/upload", &upload);
router.any("/test", &test);
router.any("/dbdata", &dbdata);
// ...
}
文本文件123.txt
放在Files
夹中。
但是当我访问http://localhost:8080/Files/123.txt
我收到404
错误。
我做错了什么?
使用serveStaticFiles()
有点棘手。 如果URLRouter
与请求路径匹配,则它将请求转发给serveStaticFiles()
。 此函数根据另一个预配置的前缀检查请求路径。 在您的情况下,前缀不匹配,并且没有提供文件。 配置正确的前缀有助于:
auto fileServerSettings = new HTTPFileServerSettings;
fileServerSettings.serverPathPrefix = "/files/";
router.get("*", serveStaticFiles("files/", fileServerSettings));
如果使用"*"
或"/files/*
进行路由匹配,则serveStaticFiles()
。它只影响将哪些路由转发到serveStaticFiles()
。
尝试这个:
router.get("files/*", serveStaticFiles("./files/"));
我不知道路由是如何工作的,但我接下来的工作是:
router.get("/rasters_previews/*", serveStaticFiles("./files/"));
// url would be localhost/rasters_previews/101_005329_2_0_02.jpg
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.