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

     2023-02-24     18

关键词:

【中文标题】如何路由到 Laravel 中的静态文件夹【英文标题】:How to route to a static folder in Laravel 【发布时间】:2015-05-26 21:31:27 【问题描述】:

我有一个文件夹放在我的 Laravel 站点的 /public 文件夹中。路径是:

/public/test

“test”文件夹有一个名为 index.html 的文件,它只是我想从公用文件夹加载的静态资源(我不想在框架内为此创建视图——太多解释)。

我做了这样的路线:

Route::get('/test', function() 
  return File::get(public_path() . '/test/index.html');
);

我无法让它工作。我刚刚从 Chrome 收到一个错误,说这个页面有一个重定向循环。

我可以这样访问它:

http://www.example.com/test/index.html

但我不能在任何地方使用 .html 扩展名。该文件必须显示为:

http://www.example.com/test/

如何在不使用 .html 扩展名的情况下从 Laravel 公共文件夹中提供单个 HTML 页面?

【问题讨论】:

【参考方案1】:

用途:

return Redirect::to('/test/index');

在你的路由文件或控制器内部的函数中。

【讨论】:

那行不通。我仍然收到重定向循环错误。【参考方案2】:

以前遇到过这个问题,作为一个肮脏的小技巧,您可以将测试文件夹重命名为其他内容然后更新

return File::get(public_path() . '/to new folder name/index.html');

关键是您的路由 url 与您的公共文件夹之间没有冲突

【讨论】:

这行得通。正如您所说,关键是确保您的路由路径和公共目录中的路径(文件夹)各自具有不同的名称。感谢您的帮助! 顺便说一句,您是如何管理测试目录中的资产的?【参考方案3】:

对于静态文件,我认为您正在浪费通过 Laravel 提供服务的资源。

过去在尝试访问 public 中的文件/文件夹时,会产生一些错误,但我认为 Laravel 附带的最新 .htaccess 已经解决了这些问题(至少在 Apache 上)。看起来像这样

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %REQUEST_FILENAME !-d
    RewriteCond %REQUEST_FILENAME !-f
    RewriteRule ^ index.php [L]
</IfModule>

它说'如果请求不是针对现有文件夹,则删除尾部斜杠(如果有的话)。如果请求不是针对现有文件夹或现有文件,则加载 Laravel 的 index.php'

然后我在子目录中添加了一个 .htaccess 文件,以确保设置 DirectoryIndex,以便在请求目录时默认加载 index.html。

【讨论】:

一个用例是:保护静态内容免受未经身份验证的用户的访问。

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

】如何从刀片模板中的Javascript文件重定向Laravel路由【英文标题】:HowtoredirectLaravelroutefromJavascriptfileinbladetemplate【发布时间】:2019-08-2802:01:48【问题描述】:我有一张处方表格并使用AJAX提交了表格。现在我想在表单成功提交后... 查看详情

Laravel:如何路由到公共文件

】Laravel:如何路由到公共文件【英文标题】:Laravel:HowtoRoutetoPublicfile【发布时间】:2013-03-2800:24:27【问题描述】:在Laravel中,是否可以通过路由重定向到public/testFile.php?在application/routes.php,Route::get(\'/\',function()//\'Howtopointtopubl... 查看详情

路由到 Laravel 5 子文件夹中的控制器

】路由到Laravel5子文件夹中的控制器【英文标题】:RoutetocontrollerinsubfolderinLaravel5【发布时间】:2015-03-2720:25:27【问题描述】:这是我的routes.php:Route::get(\'/\',\'Panel\\PanelController@index\');这是我的文件夹:Http/....Controllers/................ 查看详情

将静态文件路由到 asp.net mvc 中的新路径

...亚马逊s3服务器,我将把我所有的静态文件移动到s3。我如何将路径路由到新位置,我无法更新所有页面和正确的图像路径。喜欢:<imgsrc=\'/myfiles/i 查看详情

路由到子文件夹中的控制器在 Laravel 4 中不起作用

】路由到子文件夹中的控制器在Laravel4中不起作用【英文标题】:RoutetocontrollerinsubfoldernotworkinginLaravel4【发布时间】:2013-01-0808:53:46【问题描述】:当我遇到这个问题时,我正在将我的Laravel3应用程序更新到Laravel4...我尝试过的路... 查看详情

如何从 laravel 中的某个路由页面检索图像或文件?

】如何从laravel中的某个路由页面检索图像或文件?【英文标题】:howtoretrieveimagesorfilesfromacertainroutepageinlaravel?【发布时间】:2020-05-0113:56:13【问题描述】:我在某些路线上显示或检索用户个人资料照片时遇到问题。它适用于其... 查看详情

如何从 db 中的两个表中路由、获取和显示数据到 laravel 5.2 中的单个网页

】如何从db中的两个表中路由、获取和显示数据到laravel5.2中的单个网页【英文标题】:Howtoroute,fetchanddisplaydatafromtwotablesindbtoasinglewebpageinlaravel5.2【发布时间】:2016-06-0407:27:02【问题描述】:我是laravel的新手,我目前正在使用larav... 查看详情

如何使用 Laravel 中的路由将循环下拉值从视图传递到控制器?

】如何使用Laravel中的路由将循环下拉值从视图传递到控制器?【英文标题】:HowtopassaloopeddropdownvaluefromviewtocontrollerusingrouteinLaravel?【发布时间】:2019-02-1403:18:15【问题描述】:我有这个下拉列表,其中包含循环项目。我想要的... 查看详情

laravel中的动态网址?

】laravel中的动态网址?【英文标题】:Dynamicurlsinlaravel?【发布时间】:2012-12-0108:40:34【问题描述】:我正在为我的下一个项目寻找switchingtolaravel。我的下一个项目可能会是一个包含几个静态页面、一个博客和一个项目经理的小... 查看详情

Laravel 默认路由到 404 页面

...】:【参考方案1】:在Laravel5.2中。什么都不做,在errors文件夹中创建一个文件名404.blade.php,它会自动检测404异常 查看详情

如果我不使用刀片或任何模板,如何使用 href 标签重定向到 laravel 5 中的路由?

...果我不使用刀片或任何模板,如何使用href标签重定向到laravel5中的路由?【英文标题】:Howtoredirecttoarouteinlaravel5byusinghreftagifI\'mnotusingbladeoranytemplate?【发布时间】:2016-03-0900:03:17【问题描述】:Route::get(\'/page\',\'UserController@viewpag... 查看详情

我如何将 url 路由到 laravel 中的特定控制器并锚定到特定控制器

】我如何将url路由到laravel中的特定控制器并锚定到特定控制器【英文标题】:howwouldIrouteurlwithandanchortoaspecificcontrollerinlaravel【发布时间】:2016-07-1820:22:05【问题描述】:我继承了一个使用JSON并使用散列扩展框的网站。当我创建... 查看详情

ExpressJS:如何忽略路由中的公共静态文件?

】ExpressJS:如何忽略路由中的公共静态文件?【英文标题】:ExpressJS:HowdoIignorepublicstaticfilesinmyroute?【发布时间】:2011-10-0621:03:46【问题描述】:app.get("/:name?/:group?",function(req,res)...正在匹配我的公共目录中的文件。所以如果我包... 查看详情

如何重定向回 Laravel 中的 POST 路由

】如何重定向回Laravel中的POST路由【英文标题】:HowtoredirectbacktoaPOSTrouteinLaravel【发布时间】:2019-12-2307:08:11【问题描述】:我有一个价格范围搜索滑块。这适用于查找范围之间的价格。它工作正常。如果我设置一个范围并按下... 查看详情

如何使 Laravel 5 重定向到没有哈希(#)的 Angular 路由?

】如何使Laravel5重定向到没有哈希(#)的Angular路由?【英文标题】:HowtomakeLaravel5redirecttoAngularrouteswithoutthehash(#)?【发布时间】:2016-05-0508:54:37【问题描述】:我正在使用带有Angular的Laravel5。默认情况下,Angular将/#/添加到URL。我... 查看详情

如何将路线返回到laravel中的视图

】如何将路线返回到laravel中的视图【英文标题】:Howtoreturnroutestoviewsinlaravel【发布时间】:2014-11-2301:37:09【问题描述】:我刚刚尝试使用这样的路由加载视图:route.phpRoute::get("/page",function()returnView::make("dir.page"););controller.phpView::... 查看详情

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

】禁用特定文件夹/路由的Laravel路由【英文标题】:DisableLaravelRoutingforaspecificfolder/route【发布时间】:2013-08-0704:06:27【问题描述】:我想知道如何在laravel上禁用特定目录的路由?我希望在laravel上运行我的主要网站(我正在将其... 查看详情

路由到 Laravel 8 中的控制器 [重复]

】路由到Laravel8中的控制器[重复]【英文标题】:RoutetocontrollerinLaravel8[duplicate]【发布时间】:2021-01-1901:13:47【问题描述】:我正在使用Laravel8,当我像这样编写到__invoke控制器的路由时:useApp\\Http\\Controllers\\PortfolioController;Route::ge... 查看详情