Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 29.10.2017 20:54:12

Смена всех путей в blade-шаблонах при переходе на хостинг

Столкнулся с проблемой, что при переносе сайта на хостинг мне пришлось менять ссылки на все скрипты, изображения, шрифты. Причина возникновения проблемы в том, что весь проект закидывается в директорию public_html. Таким образом стили, например, теперь расположены здесь: public_html/public/css/..., а были расположены здесь: public/css/... Теперь при каждой правке шаблона приходится его заливать и каждый раз менять все эти пути. Как это вообще делается? И еще вопрос из той же серии, я все свои изменения заливаю вручную пофайлово. Как это делают профи? Спасибо.

Не в сети

#2 29.10.2017 21:21:37

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

Изначально вместо прямых путей нужно использовать помощники вроде asset() для создания пути к JS, CSS, изображениям и пр. И помощники вроде public_path() для указани путей к файлам.

Не в сети

#3 29.10.2017 21:46:56

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

Изначально вместо прямых путей нужно использовать помощники вроде asset() для создания пути к JS, CSS, изображениям и пр.

У меня все пути написаны через asset, например:
href="{{asset('css/slider.css')}}"
Но это не помогло (должно было ведь помочь?). А вот насчет public_path() не знал, сейчас посмотрю что к чему.

Не в сети

#4 29.10.2017 22:01:51

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

А какой именно пусть создает asset('css/slider.css')? Должен создавать что-то вроде https://website.com/css/slider.css

Не в сети

#5 29.10.2017 22:08:58

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

нужно использовать помощники вроде asset() для создания пути к JS, CSS, изображениям и пр. И помощники вроде public_path() для указани путей к файлам.

А, чет не внимательно прочитал, да, public_path() - это немного не то (хотя тоже спасибо, я о нем не знал). А вот asset не помог. У меня что на локалхосте путь к css был css/slider.css, что на хостинге. А должен был стать public/css/slider.css. Может я неправильно сконфигурировал .htaccess? У меня на локалхосте было:
DirectoryIndex index.php
RewriteRule ^ index.php [L]
А я исправил на:
DirectoryIndex public/index.php
RewriteRule ^ public/index.php [L]
и вкинул в корневую public_html хостинга.

Не в сети

#6 29.10.2017 22:10:39

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

А какой именно пусть создает asset('css/slider.css')? Должен создавать что-то вроде https://website.com/css/slider.css

да, такой и создает, а мне нужно https://website.com/public/css/slider.css
Что-то мне подсказывает, что я неверно настроил .htaccess

Не в сети

#7 29.10.2017 22:30:14

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

Тебе как раз нужно настроить веб сервер так, чтобы в URI не было public.

Не в сети

#8 29.10.2017 23:33:22

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

Тебе как раз нужно настроить веб сервер так, чтобы в URI не было public.

public то я убрал из .htaccess, но теперь сервер не видит мою точку входа public_html/public/index.php. Вся проблема в том, что на локалхосте .htaccess лежал в папке public и все было ОК,а теперь его пришлось вынести в корень, иначе сервер не может найти .htaccess (я так думаю).

Не в сети

#9 29.10.2017 23:36:38

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

Может в данном случае мне нужно .htaccess вынести из public в корень и на локалхосте? И настроить пути так, чтобы все работало на локалхосте. Тогда при переносе на хостинг теоретически с адресами проблем не должно возникнуть? Сейчас попробую это сделать. Если нет, подскажите как это делается или ткните где об этом пишут.

Не в сети

#10 29.10.2017 23:58:39

Re: Смена всех путей в blade-шаблонах при переходе на хостинг

Не угадал, смена настроек на локалхосте никак не поможет.
Я понял почему возникла эта проблема. В настройках доменов локального сервера (опенсервер) я указывал папку mysite.com/public в качестве доменной директории. Соответственно локалхост знал где искать .htaccess, который лежал внутри /public/. Соответственно, внитри .htaccess нужно было указывать такой путь (т.к. .htaccess лежал вместе с index.php):
DirectoryIndex index.php.
RewriteRule ^ index.php [L]
При переходе же на хостинг у меня нет возможности указать доменную директорию. Поэтому я вынужден вынести .htaccess в корень, чтобы сервер мог его найти. А поскольку я его вынес, то теперь по отношению к нему, индексный файл размещается по другому адресу:
DirectoryIndex public/index.php.
RewriteRule ^ public/index.php [L]
Если я это сделаю, то сайт начинает работать, но я вынужден вручную менять все пути, везде дописывать /public/
Наверное точнее я не смогу сформулировать свою проблему. Подскажите пути решения.. Я застрял на ровном месте (((

Изменено Antuan (29.10.2017 23:59:30)

Не в сети

Подвал раздела