Angular JS + Laravel 4: как скомпилировать для производственного режима?
Итак, я смотрел видео с 5 частями на YouTube Дэвида Мошера об Angular JS (между прочим, видео было отличным). Во второй части ( http://www.youtube.com/watch?v=hqAyiqUs93c) он имеет практическое использование базы данных mysql, которое я почти хотел.
Я собираюсь использовать AngularJS вместе с Laravel 4, но я понятия не имел, какие файлы я собираюсь загрузить для веб-хостинга позже. Я пытаюсь запустить веб-приложение в папке "/public" в моем корне на localhost (localhost/public/), но css и js указывают на неправильный каталог (указывает на корень: '/css/style.css').
Другой метод, который я попробовал, это скопировать все файлы в корень и переместить все файлы из "публичного" в корень. Затем я перехожу к "localhost/public/". Все отлично работает в путях сценария, за исключением того, что он, похоже, не имеет никакого соединения с базой данных (не удалось ни laravel, ни angular).
Есть ли правильный способ сделать это для практического использования (без использования php artisan serve
или же grunt run
или же lineman run
на сервере)? Какие файлы я должен загрузить позже?
РЕДАКТИРОВАТЬ: причина в том, что мой веб-хостинг не позволяет мне устанавливать nginx или запускать код удаленно, используя putty, поэтому мне нужен ручной способ сделать это. Благодарю.
1 ответ
- Сначала установите последнюю
laravel
в вашем местном хосте. Смотрите док. - Предполагая, что вы завершили
composer install
команда. - Затем переместите все
public
содержимое папки в корневой каталог проекта. Затем измените
line 21
вindex.php
от,require __DIR__.'/../bootstrap/autoload.php';
в
require __DIR__.'/bootstrap/autoload.php';
а также
line 35
содержание$app = require_once __DIR__.'/../bootstrap/start.php';
в
$app = require_once __DIR__.'/bootstrap/start.php';
Теперь вы можете получить доступ к проекту без общей папки.
- Поместите свой
css
,js
и другие активы папки в корне, какhttp://localhost/laravel/css
- Обратите внимание, что лезвие Laravel и угловой также используют
{{
синтаксис для компиляции. Так что вам нужно изменить синтаксис лезвия Laravel на{=
а также=}
. В противном случае вы получите конфликт. Чтобы сделать это открытым
vendor/laravel/framework/src/Illuminate/View/Compilers/BladeCompiler.php
файл и изменениеline 45
к этомуprotected $contentTags = array('{=', '=}');
а также
line 52
к этомуprotected $escapedTags = array('{={', '}=}');
Теперь вы можете использовать
{{
для угловых и{=
для лезвия.- Для связывания ваших активов используйте
HTMLBuilder
функции, см. документ здесь. Теперь используйте их в лезвии,
{= HTML::style('css/style.css') =} // links localhost/project/css/style.css {= HTML::script('js/jquery.js') =}
использование
migrations
а такжеdb seeds
в localhost и сделайте экспортированную копию БД для интернет-хостингаПосле завершения проекта скопируйте все содержимое проекта на онлайн-сервер и измените конфигурацию базы данных и импортируйте базу данных.
Структура каталогов для онлайн
Там будет публичный каталог для вашего файлового хостинга, где вы поместите свои файлы в корневой веб-каталог.
Это может быть htdocs
или же public_html
и теперь это ваш проект публичного корня. Теперь структура каталогов будет,
-- app
-- bootstrap
-- css
-- images
-- js
-- vendor