Laravel:如何路由到公共文件

Posted

技术标签:

【中文标题】Laravel:如何路由到公共文件【英文标题】:Laravel: How to Route to Public file 【发布时间】:2013-03-28 00:24:27 【问题描述】:

在 Laravel 中,是否可以通过路由重定向到 public/testFile.php

application/routes.php

Route::get('/', function()

    //'How to point to public/testFile.php'

);

有一个现有的项目,但只想做 Laravel 中的新模块。于是复制了Public/下的Existing project

【问题讨论】:

我没有给你投反对票,但没有规则要求用户定义他们投反对票的原因。也就是说,这是一个非常基本的问题,也违背了使用 MVC 框架的意义。 我个人没有投票给你。只是在我的回答中表示不赞成,但最终,不管你的船是什么。我个人在生产代码中看到的问题比你的问题差 100 倍 ;-) 所以我们有一个现有的项目,但只想做 Laravel 中的新模块。所以将现有项目保持在 Public/ 我想通了。你知道在这种情况下,如果你想直接访问文件,根本不需要路由吗?但是,如果您不想这样做,可以使用我的两个解决方案中的第一个。 感谢塞巴斯蒂安,您的支持。让我接受你的回答。 【参考方案1】:

你这样做完全违背了框架的目的,但如果你真的想......

Route::get("/", function() 
    ob_start();
    require(path("public")."testFile.php");
    return ob_get_clean();
);

这将返回文件的标准输出。相反,如果脚本中已有返回值,请取消 ob_startreturn 调用。

重定向如下:

Route::get("/", function()  return Redirect::to("testFile.php"); );

【讨论】:

require(path("public")."testFile.php");可以更新为require(public_path() . "/testFile.php"); 我在其他地方创建了一个 SPA,并通过 CLI 将 SPAindex.html 构建到 Laravel 公用文件夹中。我正在尝试设置它,但它不起作用。在我想链接public/SPAindex.html的情况下,我应该如何准确编写路由的控制器?【参考方案2】:
Route::get('/', function()

    include public_path().'testFile.php';
);

如果您想重定向,请使用return Redirect::to('testFile.php')

但我不明白你为什么要做这种奇怪的事情。

我认为你使用的是 Laravel 3(正如你提到的 application/...),public_path()path('public')

【讨论】:

以上是关于Laravel:如何路由到公共文件的主要内容,如果未能解决你的问题,请参考以下文章

如何重定向到laravel上的公共文件夹

如何路由到 Laravel 中的静态文件夹

Vue-Router 仅显示使用 Laravel Blade 的基本路由?

Laravel如何在主机上部署项目后访问公共文件

如何在laravel中删除公共文件夹

禁用特定文件夹/路由的 Laravel 路由