Есть ли решение не добавлять подкаталог publi c в каждую ссылку в laravel - PullRequest
0 голосов
/ 27 февраля 2020

это моя проблема на долгий год. каждый раз, когда я развертывал проект, всегда добавляю к каталогу publi c подкаталог css / images / JavaScript. Здесь я продемонстрирую сравнение ниже.

Вопрос: Есть ли способ не помещать подкаталог publi c.?

Localhost VS Развернутый проект на apache.

Локальный хост:

<script src="{{asset('js/jquery.min.js')}}" crossorigin="anonymous"></script> 
<link href="{{ asset('datatables/dataTables.bootstrap4.min.css') }}" rel="stylesheet">
<img src="{{asset('storage/'.Auth::user()->profile_image)}}" class="img-profile rounded-circle" style="width:40px !important; height:40px !important;">

Производство:

<script src="{{asset('/public/js/jquery.min.js')}}" crossorigin="anonymous"></script> 
<link href="{{ asset('/public/datatables/dataTables.bootstrap4.min.css') }}" rel="stylesheet">
<img src="{{asset('/public/storage/'.Auth::user()->profile_image)}}" class="img-profile rounded-circle" style="width:40px !important; height:40px !important;">

Спасибо.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2020

Выполните следующие действия:

  1. Создайте новую папку в вашем Laravel Root (в моем случае _laravel-system).
  2. Переместите все Laravel файлы & папки в папку _laravel-system.
  3. Go в _laravel-system\public и переместите все в папку Laravel Root. Оставьте папку public пустой или удалите ее.
  4. Отредактируйте файл index.php в папке Laravel Root.

Редактируйте index. php изменить bootstrap целей.

// require __DIR__.'/../vendor/autoload.php';
require __DIR__.'/_laravel-system/bootstrap/autoload.php';

// $app = require_once __DIR__.'/../bootstrap/app.php';
$app = require_once __DIR__.'/_laravel-system/bootstrap/app.php';

Связывание хранилища

Добавить этот код в app\Providers\AppServiceProvider.php для настройки нового public_path.

public function boot () {
    \App::bind('path.public', function() {
        return base_path().'/../';
    });
}

Затем запустите:

php artisan storage:link

Если есть ошибка

Каталог «storage» уже существует.

Удалить папку ссылок (ранее в public\storage) сначала и снова запустите команду Artisan.


Это моя файловая структура:


ПРИМЕЧАНИЕ :

Пожалуйста, помните о безопасности. Заблокируйте любой доступ к системной папке Laravel, отредактировав, например, файл .htaccess.

0 голосов
/ 27 февраля 2020

Нет необходимости / publi c.

<link href="{{asset('css/jquery-ui.min.css')}}" rel="stylesheet"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...