php - 用于图像的 Slim 框架 3 路径/路由
问题描述
我有以下结构:
index.php
/app
/images
我为所有不同的页面和诸如此类的东西设置了路线,但是当我尝试直接访问图像时,它会尝试选择该路线作为我的动态路线之一。
因此,对于上下文,我从一个预先存在的应用程序转换它并维护它拥有的链接/路径,我在索引的末尾有一个完全动态的路由:
$app->get('/{page}', 'HomeController:processRequest');
$app->get('/{page}/{id}', 'ProductController:viewProduct');
$app->get('/{page}/{id}/{show}', 'ProductController:viewProduct');
因此,当我在图像标签中执行以下操作时:
https://example.com/images/nav/tinycheck.png
那条路线开始了,但它失败了。有什么方法可以告诉 Slim 忽略路径中带有“图像”的任何内容,只提供图像?
我已经尝试在这里查看一堆其他线程,但没有任何东西可以让我找到答案。
解决方案
我似乎已经通过以下方式解决了它:
$app->get('/images/nav/{data}', function($request, $response, $args) {
$data = $args['data'];
$image = @file_get_contents("/mypath/images/nav/".$data);
if($image === FALSE) {
$handler = $this->notFoundHandler;
return $handler($request, $response);
}
$response->write($image);
return $response->withHeader('Content-Type', FILEINFO_MIME_TYPE);
});
推荐阅读
- django - 如何在django中根据status=True排列数据
- css - Bootstrap 5 - 在网格显示中对齐内容
- reactjs - 当我从 Context 检索值时,我没有得到任何数据
- java - 如何在 Android Studio 的“短信内容提供者”中读取我自己发送的短信
- reactjs - 将更新的状态从父母传递给孩子
- permissions - 如何授予 AdMob 互联网访问权限?
- amazon-web-services - 本机 PowerShell ForEach 循环删除 S3 存储桶中的文件
- postgresql - 迁移失败
- r - 更改数字格式而不制作类 chr 的数量
- python - 如何使用组碰撞?