vibed:Can';我无法完成路由工作

vibed:Can';我无法完成路由工作,d,vibed,D,Vibed,我正试图以非常简单的方式开始工作: void main() { config=newconfig(); 自动路由器=新路由器; get(“/*”,serveStaticFiles(roothtml~“\\”); get(“files/*”,serveStaticFiles(“./files/”); 路由器。任何(“*”、&accControl); 路由器。任何(“/checkAuthorization”、&checkAuthorization); 路由器。任何(“/login”,&login);

我正试图以非常简单的方式开始工作:

void main()
{
config=newconfig();
自动路由器=新路由器;
get(“/*”,serveStaticFiles(roothtml~“\\”);
get(“files/*”,serveStaticFiles(“./files/”);
路由器。任何(“*”、&accControl);
路由器。任何(“/checkAuthorization”、&checkAuthorization);
路由器。任何(“/login”,&login);
路由器。post(“/logout”、&logout);
路由器。任何(“/upload”、&upload);
路由器。任何(“/test”、&test);
任何(“/dbdata”和&dbdata);
// ...
}
文本文件
123.txt
放在
Files
文件夹中

但是当我访问
http://localhost:8080/Files/123.txt
我收到了
404
错误

我做错了什么?

试试这个:

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

使用
serveStaticFiles()
有点棘手。如果
URLRouter
与请求路径匹配,则它会将请求转发到
serveStaticFiles()
。此函数根据另一个预配置的前缀检查请求路径。在您的情况下,前缀不匹配,也没有提供任何文件。配置正确的前缀有助于:

autofileserversettings=新的HTTPFileServerSettings;
fileServerSettings.serverPathPrefix=“/files/”;
get(“*”,serveStaticFiles(“files/”,fileServerSettings));

使用
“*”
“/files/*
进行路由匹配并不重要。它只影响将哪些路由转发到
serveStaticFiles()

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

router.get(“/rasters\u previews/*”,serveStaticFiles(“/files/”);
//url应该是localhost/rasters\u previews/101\u 005329\u 2\u 0\u 02.jpg

删除开头的“一网打尽”获取路线!@greenify not help:(提供静态文件的官员是否在您的计算机上工作?是的,我可以访问我的代码没有
auto fileServerSettings=new HTTPFileServerSettings;
?此字符串的作用:
fileServerSettings.encodingFileExtension=[“gzip”:“.gz”]
?但在示例中有两个index_large.html,一个在gzip文件夹中,一个在.btw外部,这样可以工作,因此如果我需要为不同的文件夹提供多个URL,如
/foo
/bar
,我应该创建两个
fileServerSettings
实例?是的,因为
serverPathPrefix
与请求路径匹配。