d - 振动:无法获得路由工作

  • 本文关键字:路由 工作 振动 vibed
  • 更新时间 :
  • 英文 :


我正在尝试非常简单的振动路由:

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()

试试这个:

router.get("files/*", serveStaticFiles("./files/"));

我不知道路由是如何工作的,但我得到了下一个变体:

router.get("/rasters_previews/*", serveStaticFiles("./files/"));
    // url would be localhost/rasters_previews/101_005329_2_0_02.jpg

相关内容

  • 没有找到相关文章

最新更新