首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >vibed:无法获取路由工作

vibed:无法获取路由工作
EN

Stack Overflow用户
提问于 2016-08-07 21:24:23
回答 3查看 196关注 0票数 1

我正在尝试通过非常简单的vibed routing开始工作

代码语言:javascript
复制
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错误。

我做错了什么?

EN

回答 3

Stack Overflow用户

发布于 2016-08-08 03:57:32

使用serveStaticFiles()有点棘手。如果URLRouter与请求路径匹配,那么它会将请求转发给serveStaticFiles()。此函数根据另一个预先配置的前缀检查请求路径。在您的示例中,前缀不匹配,并且不提供任何文件。配置正确的前缀有助于:

代码语言:javascript
复制
auto fileServerSettings = new HTTPFileServerSettings;
fileServerSettings.serverPathPrefix = "/files/";
router.get("*", serveStaticFiles("files/", fileServerSettings));

使用"*""/files/*进行路由匹配并不重要。它只影响转发到serveStaticFiles()的路由。

票数 3
EN

Stack Overflow用户

发布于 2016-08-07 21:40:50

试试这个:

代码语言:javascript
复制
router.get("files/*", serveStaticFiles("./files/"));
票数 0
EN

Stack Overflow用户

发布于 2016-08-08 21:29:30

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

代码语言:javascript
复制
router.get("/rasters_previews/*", serveStaticFiles("./files/"));
    // url would be localhost/rasters_previews/101_005329_2_0_02.jpg
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38814599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档