フロント(Brunch)とバック(Django)を分割したいと考えています。私は、このフォルダ構造を持っている:(Django)フロントエンドとバックエンドを分割
backend
mydjangoapp
static
mydjangoapp
image
javascripts
stylesheets
index.html
frontend
app
public
image
javascripts
stylesheets
index.html
だから例えば、index.htmlをの内側にスタイルシートへのパスは次のようになります。
- [バックエンド]
static/mydjangoapp/stylesheets/app.css
- [フロントエンド]
/stylesheets/app.css
フロントエンドパスを使用して、フロントエンドをローカルでブランチサーバーでテストし、バックエンドパスをデプロイ時にdjangoアプリケーションでテストします。現在の手順を展開することは、次のようになります
- ブランチなどindex.htmlを、app.js内のすべてのパスがバックエンドに一致するように
backend/static/mydjangoapp
- 変化にパブリックフォルダの
- 移動コンテンツを構築します 静的パス。
非常に便利ではありません。それを自動的に行う方法はありますか?私はフロントエンドと一致するようにバックエンドの静的パスを変更するか、それを行うためのスクリプトを書くことができたと思います。しかし、それは本当に適切な解決策ではありませんか? index.htmlを直接フロントエンドフォルダからレンダリングし、パスを変更せずに静的ファイルをロードする方法が必要です。 Googleにしようとしましたが、運はありません。
とafter-brunch
exports.config = { plugins: { afterBrunch: [ 'cp -r public ../backend/static' // cp -r /from/frontend/path /to/backend/path ] } }
例と
例あなたは、ファブリックを検討していますか?このプロセスを自動化するほとんどの展開スクリプトを作成することができます。私はステップ1と2を処理できると思う。 3の場合は、DEBUGがオンになっているかどうかをチェックするif文を含めることを検討してください。 – ubadub
Thanks @ubadub、しかし、私はスクリプトを書く方が簡単だと思います。正確には私が探していたものではありません。 – Andrey
* djangoなしで(ローカルまたは他の方法で)フロントエンドアプリケーション*を実行していますか?あなたはどんな種類のパスをjsなどに持っていますか? HTMLの場合、 'static-jade-brunch'のようなものを簡単に使用し、HTMLに '{{prefix}} stylesheets/app.css'を入れて、' static-jade-brunch'を '/'か ' 'static/mydjangoapp /'はENV変数などに依存します。 また、コンパイルしたファイルを '../backend/static/mydjangoapp'に直接置くようにBrunchを設定することもできます。 - https://github.com/brunch/brunch/blob/master/docs/config.md#paths –