perl - 提供静态文件的文档
问题描述
我对提供静态文件的文档有疑问......它声称
静态文件从应用程序的公共目录自动提供,可以使用 Mojolicious::Static 中的“路径”或 Mojolicious::Static 中的“类”中的 DATA 部分之一进行自定义。如果这还不够,您还可以使用 Mojolicious::Plugin::DefaultHelpers 中的“reply->static”和 Mojolicious::Plugin::DefaultHelpers 中的“reply->file”手动为它们提供服务。
从公共目录自动提供服务是什么意思,它与手动提供服务有何不同?
我想我的问题是 -> 你如何在你的代码中访问或使用自动提供的页面?
解决方案
本教程也简要介绍了这一点。基本上,在通过您添加的动态路由get
等之前,它会检查您的公共目录或数据部分中是否提供了请求的文件路径。默认情况下,分配的唯一公共目录public/
位于您的应用程序根目录中。默认情况下,检查部分的唯一类__DATA__
是main
(因为__DATA__
部分模板最常用于单个文件脚本中的 Mojolicious::Lite 应用程序)。
所以作为一个真实的例子,如果你收到一个请求,它会首先检查包的部分中/foo.txt
是否有public/foo.txt
文件或a 。如果找到,它将按原样提供,并对缓存静态文件的浏览器进行一些优化。如果不是,它将尝试将其与您声明的路线相匹配。foo.txt
__DATA__
main
您的应用程序的 Mojolicious::Static 对象中的paths
andclasses
属性(可作为static
应用程序上的属性访问)可以在启动期间更改或附加到其他地方查看。
push @{$app->static->paths}, $app->home->child('other');
$app->static->classes(['Some::Class']);
推荐阅读
- c# - 使用 FDD 闪烁 LED 时的 PlatformNotSupportedException,使用 SCD 工作
- java - 如何在我的应用程序中传递当前登录的用户信息
- javascript - 如何根据刀片模板中的数据库字段设置选定选项?
- python-3.x - 当你在一个类中重写 __eq__ 时,是否还需要重写 __hash__?
- javascript - 基于多个单选按钮输入使用 jquery 更新图像
- jquery - jQuery在元素父元素内移动元素
- codeigniter - Codeigniter 4 电流/有源控制器
- azure - 如何从 azure 中的单个 Web 应用程序 (Umbraco) 自动为不同客户动态创建新环境?
- c++ - 有没有办法确保代码只使用 std 中的名称,而不是全局命名空间?
- python - Python复制到新列表并排除项目