Code Monkey home page Code Monkey logo

lk-staticfiles's Introduction

Total Downloads Latest Stable Version Latest Unstable Version License

#lk-staticfiles! Библиотека для Laravel для управления статикой (сборка в один файл, сжатие JS/CSS, добавление хэша в URL для сброса кэша браузера)

##Step 1 Подключаемые стили и скрипты вынесем в отдельный файл, для этого в app/start/global.php в самый конец добавим строку:

require app_path() . '/staticfiles.php';

##Step 2 Создадим файл app/staticfiles.php и заполним его инструкциями по подключению JS/CSS

<?php
\LaraCss::add('http://fonts.googleapis.com/css?family=Open+Sans:300&subset=cyrillic')
   ->add('http://fonts.googleapis.com/css?family=Oswald:400,700,300')
   ->add('/packages/components/font-awesome/css/font-awesome.css')
   ->add('/packages/components/animate.css/animate.css')
   ->add('/packages/components/jquery-pace/jquery-pace.js')
   ->add('/packages/components/jquery-notific8/jquery.notific8.min.css')
;
\LaraJs::add('/!/build/bootstrap.min.js')
  ->add('/!/static/js/main.js')
;

##Step 3 Чтобы добавленные стили и скрипты вставились во все страницы сайта надо в вашем шаблоне прописать вызов

<html>
    <head>
        <title>title</title>
        {{ laracss() }}
    </head>
    <body>
        ...	
        {{ larajs() }} 
    </body>
</html>

##Step 4 После того как это сделано можете вызвать в консоли процедуру

php artisan latastatic:deploy 

которая произведет выкладку статики в public для каждого зарегистрированного пакета

Как использовать готовые пакеты со статикой:

  1. заходите на packagist.org и вписываете в поле поиска название нужного пакета, например jquery, bootstrap, jqueryui, angular, etc... Скорее всего этот пакет будет у вендора "components"

Внимание!
Пакеты подготовленные для работы с модулем помечены тегом "larastatic"


  1. вписываете пакет в composer.json проекта
{
    "require": {
        "components/bootstrap": "*",
        "components/jqueryui": "*",
        "components/font-awesome": "*",
        "components/animate.css": "*",
        "components/jquery-pace": "*",
        "components/jquery-notific8": "dev-master",
        "components/jquery": "*"
    }, 
}
  1. регистрируете пакет в приложении, чтобы можно было произвести выкладку статики
<?php
larastatic_register("<vendor>/<package>");

Внимание!!! Вторым параметром функции регистрации пакета со статикой идет путь к выкладываемым файлам внутри пакета. По-умолчанию передается значение true, что означает, что статика будет искаться в поддиректории "public" как это принято в Laravel Если же выкладываемая статика находится в корне пакета, как например в "components/bootstrap", то следует вторым параметром передать пустую строку

<?php
larastatic_register('components/bootstrap', '');

Если же выкладываемая статика находится в какой то поддиректории пакета, как например в "components/animate.css", то следует вторым параметром передать эту поддиректорию

<?php
larastatic_register('components/animate.css', 'css');

и тогда будет выложена только нужная часть пакета, например, без исходных кодов


Возможности и рекомендации

Пакет умеет собирать в один файл и минимизировать статику. Все билды версифицированы, что исключает кеширование на стороне клиента.
Для режима разработки отключите сборку билдов, а на продакшн-сервере включите.
Этим вы значительно уменьшите количество выполняемых к серверу запросов для получения статики.
Для изменения дефолтных настроек модуля необходимо опубликовать их:

php artisan config:publish larakit/lk-staticfiles

Настройки окажутся окажутся в директории app/config/packages/larakit/lk-staticfiles/ и станут доступными для переопределения.

lk-staticfiles's People

Contributors

aberdnikov avatar sharoff45 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.