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
Другие вопросы по тегам