私はComposerの初心者なので、それについてほとんど知識がなく、Webアプリケーション開発の経験もほとんどありません。
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ファイルをそのままにしておくことはできますか?
ありがとう。
アセット(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
パスについてはわかりません。しかし、これはうまくいくはずです。
チュートリアルにあるように、パブリックディレクトリにコピーする必要があります。
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
編集:
アセットファイルはパブリックフォルダーのみに存在する必要があるため、Composerはすべてベンダーのフォルダーにパッケージを置くことです。どのは外界から見えない必要があります。
ただし、Composer post-install-cmd:
{
"scripts": {
"post-update-cmd": "MyVendor\\MyClass::postUpdate",
}
}
そして、更新が発生するたびにそれらのファイルをコピーします。 PHP、bash、またはホストで実行できる他の言語を使用して作成できます。ドキュメント: http://getcomposer.org/doc/articles/scripts.md 。
php artisan asset:publish --path="vendor/twbs/bootstrap/dist/" bootstrap
またはphp artisan vendor:publish --path="vendor/twbs/bootstrap/dist/" bootstrap
が機能しなくなったことに気付きました。
私にとってうまくいったのは、composer.jsonを編集してscripts
、post-update-cmd
の下に以下を追加することです。
"scripts": {
"post-update-cmd": [
"php artisan optimize",
"mkdir -p public/bootstrap",
"cp -R vendor/twbs/bootstrap/dist/ public/bootstrap/"
]}
上記のように 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/"
]
},
}
これは私にとってうまくいった
"scripts": {
"post-update-cmd": [
"mkdir -p html/vendor/",
"ln -sfr vendor/twbs/bootstrap/dist html/vendor/bootstrap"
]
},
「r」フラグは、シンボリックリンクを相対にし、実際のフォルダーを指します。
私はLaravelとBootstrapを初めて使用し(そしてそれらを一緒に使用する)、同じ問題が発生したときにこのスレッドを見つけました。新しいLaravelプロジェクトを作成し、Bootstrapプロジェクトのルートディレクトリから次のコマンドを実行してLaravelを追加しました。
%composerにはtwbs/bootstrapが必要です
次に、ビューファイルに次のコードを含めました。
<link href="css/app.css" rel="stylesheet">
composer(またはブートストラップ)は、参照によりBootstrap cssファイル(非公開ベンダーフォルダーにある)を含むapp.cssを追加するようです。 app.cssへの参照を追加すると機能し、ビューでBootstrapコンポーネントを使用できました。