如何使用 laravel 路由提供包含非刀片(Html)的文件夹? [复制]

Posted

技术标签:

【中文标题】如何使用 laravel 路由提供包含非刀片(Html)的文件夹? [复制]【英文标题】:How to serve a folder containing non-blade (Html) with laravel routes? [duplicate] 【发布时间】:2022-01-05 20:14:04 【问题描述】:

我可以在 Laravel 的 public 文件夹中提供 html 文件和文件夹。

但我想将它们用作视图并将它们呈现为视图,

所以我可以在它们上使用身份验证和授权中间件

如果它们是很多文件,我不想为每个文件写很多路由。

【问题讨论】:

@manjkiran appathurai :它没有,因为它不能帮助我不为分层结构编写分层路由 【参考方案1】:

解决方案是在resources/views 下创建静态资产 喜欢resources/views/static

例如:

resources/views/static/foo.html
resources/views/static/bar/baz.html

之后我可以在我的路由文件中放置一个类似通配符的路由,

然后强制视图引擎接受 html 扩展,并像刀片层次结构一样转换 url 层次结构


Route::get('/pages/url?', function ($url) 
    View::addExtension('html', 'php');
    $viewPath = str_replace(DIRECTORY_SEPARATOR, '.', pathinfo($url, PATHINFO_DIRNAME)) . '.'.pathinfo($url, PATHINFO_FILENAME);
    return View::make('static.'. $viewPath);
)->where('url', '(.*)');

【讨论】:

以上是关于如何使用 laravel 路由提供包含非刀片(Html)的文件夹? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 路由动态路由控制器到刀片模板

laravel 5.2 如何在刀片中获取路由参数?

如何从刀片模板中的 Javascript 文件重定向 Laravel 路由

如何在刀片文件 laravel 5.6 中获取当前路由名称

如何从 laravel 刀片加载 vuejs 组件?

如果仅存在,则在 laravel 刀片中调用路由