提供静态文件的文档

Documentation on Serving static files

我对提供静态文件的文档有疑问...它声称

Static files are automatically served from the public directories of the application, which can be customized with "paths" in Mojolicious::Static, or one of the DATA sections from "classes" in Mojolicious::Static. And if that's not enough you can also serve them manually with "reply->static" in Mojolicious::Plugin::DefaultHelpers and "reply->file" in Mojolicious::Plugin::DefaultHelpers.

从 public 目录自动提供服务是什么意思,它与手动提供服务有何不同?

我想我的问题是 -> 您如何在代码中访问或使用自动提供的页面?

the tutorial 中也简要介绍了这一点。基本上,在通过您使用 get 等添加的动态路由之前,它会检查您的 public 目录或数据部分中是否提供了请求的文件路径。默认情况下,分配的唯一 public 目录是应用程序根目录中的 public/。默认情况下,检查 __DATA__ 部分的唯一 class 是 main(因为 __DATA__ 部分模板最常用于单个文件脚本中的 Mojolicious::Lite 应用程序).

所以作为一个真实的例子,如果你得到一个请求/foo.txt,它会首先检查是否有一个public/foo.txt文件或者foo.txt__DATA__ ] main 包的部分。如果它找到一个,它将按原样提供,并对缓存静态文件的浏览器进行一些优化。如果没有,它将尝试将其与您声明的路由相匹配。

应用程序 Mojolicious::Static 对象中的 pathsclasses 属性(可作为应用程序上的 static 属性访问)可以在启动期间更改或附加和其他地方一起看。

push @{$app->static->paths}, $app->home->child('other');
$app->static->classes(['Some::Class']);