首页 > 解决方案 > Laravel:静态文件名问题的路由

问题描述

我想用这种方式为带有版本控制的静态文件制作一种 api:

public/js

public/js
  ├ script-1.1.js
  ├ script-1.2.js
  ├ ...
  └ script-2.1.js

routes/web.php


Route::get('/js/{version}/script.js', function ($version) {
    return File::get(public_path() . '/js/script-'.$version.'.js');
})->where('version', '^\d+(\.\d+)*$');

问题是 Laravel 无论如何都会忽略这条路线并试图找到静态文件。

即这将返回 404 页面:

Route::get('/js/test/script.js', function() {
    return response('Echo', 200)
           ->header('Content-Type', 'text/plain');
});

但这将返回“回声”:

Route::get('/js/test', function() {
    return response('Echo', 200)
           ->header('Content-Type', 'text/plain');
});

如何在最后有文件名的 URL 上执行路由?我仍然找不到类似的问题或任何示例。

标签: phplaravellaravel-5routesstatic-files

解决方案


推荐阅读