Как перейти на статическую папку в Laravel

У меня есть папка, которую я разместил в папке / public на моем сайте Laravel. Путь:

/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?

прежде чем сталкиваться с этой проблемой, как грязный маленький трюк, вы можете переименовать тестовую папку в другое, а затем обновить

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

ключ не является конфликтом между вашим URL-адресом маршрута с вашей папкой публично

Использование:

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

Либо в функции в вашем файле маршрутов, либо внутри контроллера.

Для статического файла, я думаю, вы тратите ресурсы, обслуживающие его через Laravel.

В прошлом были некоторые ошибки, создающие бесконечные переадресации при попытке доступа к файлам / папкам внутри public , но я думаю, что последний .htaccess, который поставляется с Laravel, разрешен (по крайней мере, 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> 

В нем говорится: «Если запрос не для существующей папки, разделите конечную косую черту, если она есть. Если запрос не для существующей папки или для существующего файла, загрузите index.php 'Laravel'

Затем я добавил файл .htaccess в подкаталог, чтобы убедиться, что DirectoryIndex установлен так, чтобы index.html загружался по умолчанию в запросе для каталога.