Подтвердить что ты не робот

Как настроить Bootstrap после загрузки через Composer?

Я новичок в Composer, поэтому я мало что знаю об этом и имею небольшой опыт разработки веб-приложений.

Я читал Nettuts+ Учебное пособие и у меня есть основной вопрос о Composer.

{
  "require": {
    "laravel/framework": "4.0.*",
    "way/generators": "dev-master",
    "twitter/bootstrap": "dev-master",
    "conarwelsh/mustache-l4": "dev-master"
  },
  "require-dev": {
    "phpunit/phpunit": "3.7.*",
    "mockery/mockery": "0.7.*"
  },
  "autoload": {
    "classmap": [
      "app/commands",
      "app/controllers",
      "app/models",
      "app/database/migrations",
      "app/database/seeds",
      "app/tests/TestCase.php"
    ]
  },
  "scripts": {
    "post-update-cmd": "php artisan optimize"
  },
  "minimum-stability": "dev"
}

Если я настрою свой файл composer.json, как указано выше, после выполнения composer install --dev, как сделать Bootstrap доступным для использования в проекте Laravel?

Я имею в виду, я вижу, что пакет Bootstrap загружен в каталог поставщика. Раньше я только загружал Bootstrap со своего официального сайта и вручную помещал файлы в публичный каталог Laravel, но какой правильный способ сделать это здесь? Могу ли я оставить файлы Bootstrap там, где они есть, потому что я хочу периодически обновлять пакет Bootstrap до последней версии?

Благодарю.

4b9b3361

Ответ 1

У нас есть команда artisan для публикации активов (CSS, JS,..). Что-то вроде этого должно работать.

php artisan asset:publish --path="vendor/twitter/bootstrap/bootstrap/css" bootstrap/css
php artisan asset:publish --path="vendor/twitter/bootstrap/bootstrap/js" bootstrap/js

Я не уверен в пути. Но это должно сработать.

Ответ 2

Как говорится в учебнике, вам необходимо скопировать его в общий каталог:

cp vendor/twitter/bootstrap/docs/assets/js/html5shiv.js public/js/html5shiv.js
cp vendor/twitter/bootstrap/docs/assets/js/bootstrap.min.js public/js/bootstrap.min.js

EDIT:

У вас действительно есть их копия, потому что ваши файлы с данными должны находиться только в общей папке, а Composer - о размещении пакетов в папке вашего поставщика, которая не должна быть видимой во внешний мир.

Но вы можете создать Composer post-install-cmd:

{
    "scripts": {
        "post-update-cmd": "MyVendor\\MyClass::postUpdate",
    }
}

И скопируйте эти файлы для вас каждый раз, когда происходит обновление. Его можно написать с помощью PHP, bash или любого другого языка, который вы можете запустить на своем хосте. Документы: http://getcomposer.org/doc/articles/scripts.md.

Ответ 3

Просто понял, что php artisan asset:publish --path="vendor/twbs/bootstrap/dist/" bootstrap или php artisan vendor:publish --path="vendor/twbs/bootstrap/dist/" bootstrap больше не работают.

Что сработало для меня, так это отредактировать композитор .json, чтобы добавить следующее в scripts, post-update-cmd:

"scripts": {
        "post-update-cmd": [
            "php artisan optimize",
            "mkdir -p public/bootstrap",
            "cp -R vendor/twbs/bootstrap/dist/ public/bootstrap/"
        ]}

Ответ 4

Просто выделите папку, указанную выше, LeviXC:

{
    "scripts": {
      "post-update-cmd": "ln -sf vendor/twitter/bootstrap/dist/ public/vendor/bootstrap/"
    }
}

Или несколько команд:

{
    "scripts": {
        "post-update-cmd": [
           "php artisan optimize",
           "ln -sf vendor/twitter/bootstrap/dist/ public/vendor/bootstrap/"
        ]
    },
}

Ответ 5

Это сработало лучше для меня

"scripts": {
    "post-update-cmd": [
        "mkdir -p html/vendor/",
        "ln -sfr vendor/twbs/bootstrap/dist html/vendor/bootstrap"
    ]
},

Флаг "r" сделал относительную симлинку, тем самым указывая на реальную папку

Ответ 6

Я новичок в Laravel и Bootstrap (и их совместном использовании), и я наткнулся на эту тему, имея ту же проблему. Я создал новый проект Laravel, а затем добавил Bootstrap, выполнив следующую команду из корневого каталога проекта Laravel:

% композитор требует twbs/bootstrap

Затем в моем файле просмотра я включил следующий код:

<link href="css/app.css" rel="stylesheet">

Похоже, что композитор (или bootstrap) добавляет app.css, который включает в себя файлы Bootstrap css (которые находятся в непубличной папке поставщика) по ссылке. Добавлена ​​ссылка на app.css, и я смог использовать компоненты Bootstrap в моем представлении.