没有不值得去解决的问题,也没有不值得去学习的技术!

在 Laravle 6 中,模拟一个请求资源文件的路由,数据从数据库中获取

在对应控制器的方法实现如下,由于需要符合 Last-Modified 规范,使用了 DATE_RFC7231,RFC 7231 格式 (示例:Sat, 30 Apr 2016 17:52:13 GMT)
1、一个请求资源文件的路由,示例如下:/static/xxx/9915995c-2952-490c-8e51-037a0950233c/assets/js/react.f886be.js 2、由于 asset_key 中包含了 /。Laravel 路由组件允许除 / 之外的所有字符。你必须使用 where 条件正则表达式显式地允许 / 成为占位符的一部分。否则会回退路由。routes/web.php 文件用于定义 web 界面的路由。


Route::get('/static/xxx/{theme_id}/{asset_key}', 'ModelController@show')->where('asset_key', '.*');


3、打开 https://regex101.com/ ,确认正则表达式 .* 可以匹配上 assets/js/react.f886be.js。如图1
打开 https://regex101.com/ ,确认正则表达式 .* 可以匹配上 assets/js/react.f886be.js
图1
4、在对应控制器的方法实现如下,由于需要符合 Last-Modified 规范,使用了 DATE_RFC7231,RFC 7231 格式 (示例:Sat, 30 Apr 2016 17:52:13 GMT)。如图2
在对应控制器的方法实现如下,由于需要符合 Last-Modified 规范,使用了 DATE_RFC7231,RFC 7231 格式  (示例:Sat, 30 Apr 2016 17:52:13 GMT)
图2


$model = Model::where('theme_id', '=', $themeId)->where('asset_key', '=', $assetKey)->where('category', '=', Model::CATEGORY_ASSET)->firstOrFail();
return response($model->content, 200)
	->withHeaders([
		'Content-Type' => $model->mime_type,
		'Last-Modified' => date(DATE_RFC7231, strtotime($model->getOriginal('updated_at'))),
	]);


PHP / Laravel / Yii2 老项目维护与长期技术支持

如果你的 PHP / Laravel / Yii2 项目已经上线,但遇到原开发离职、Bug 长期无人修复、接口不稳定、性能下降、代码难以接手等问题,可以联系我做一次远程技术排查。

适合以下情况:
✅ 老旧 PHP 系统无人维护
✅ Laravel / Yii2 项目 Bug 修复
✅ 后台管理系统小功能迭代
✅ RESTful API 接口排查
✅ MySQL / Redis / Nginx 性能问题
✅ 长期远程兼职维护

可先从一次小问题开始:
✅ 线上报错排查
✅ 接口异常分析
✅ 慢查询与性能瓶颈定位
✅ 代码结构初步评估
✅ 部署环境与日志检查

如需咨询,请联系我,并注明:PHP 维护咨询

联系方式:
Telegram:@shuijingwan
微信:13980074657
邮箱:shuijingwanwq@gmail.com

评论

一条对“在 Laravle 6 中,模拟一个请求资源文件的路由,数据从数据库中获取”的回复

  1. […] 1、参考:在 Laravle 6 中,模拟一个请求资源文件的路由,数据从数据库中获取 。在本地环境中请求,响应 200。如图1 […]

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理