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
与请求路径匹配。