Как изменить файл htaccess для правильной загрузки ресурсов моих ресурсов с помощью Laravel 5.7? - PullRequest
0 голосов
/ 28 января 2019

Я работаю с Laravel 5.7.

Я изменил файл .htaccess, чтобы исключить публичный путь к моему приложению.

Проблема в том, что теперь только ресурсы загружаются изстраницы с одним уровнем пути, например (http://localhost/myapp/home), но не для страниц с более чем одним уровнем, например (http://localhost/myapp/home/example/example2).

Я пытался использовать собственные функции laravel, такие как asset(), URL::asset() а также помощник HTML::style(), но ни один из них правильно не загрузил ресурсы.

Кроме того, я использовал несколько примеров файлов .htacces из предыдущих проектов, и они тоже не работали.

Это код моего файла .htaccess, который загружает только ресурсы маршрутизации одного уровня

Options -MultiViews -Indexes

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

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

# Handle Front Controller...
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$[NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]

Буду признателен, если кто-нибудь из вас столкнулся с этой проблемой и смог ее решить, не могли бы вы дать мнеруководство или помощь.

Приветствую коллег.

1 Ответ

0 голосов
/ 28 января 2019

Вы не должны изменять структуру каталогов внутри laravel или в вашем файле .htaccess.Чтобы сделать это, создайте символическую ссылку между вашей папкой public проекта laravel и папкой public_html на вашем сервере.Отмените все сделанные изменения и просто свяжите две папки, как обычно.Например:

ln -s ~/nameOfProject/public public_html

Таким образом, вы сохраните ваш проект Laravel, как и должно быть, и все функции останутся прежними.Кроме того, вы получаете преимущество работы с git.

PS

Вам понадобится доступ по SSH, и да, он должен прекрасно работать на «сервере общего хостинга».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...