簡體   English   中英

振動:無法獲得路由工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM