私はAngular 4/Djangoアプリケーションを持っています。すべての角度コードはDjangoアプリケーションにあります。角度アプリはwebpackを使用して構築されています。Webpack:Djangoで使用するためのindex.htmlを生成
私はwebpackに.jsバンドルを "static"フォルダに、 "index.html"ファイルを "templates"フォルダに出力したいと思います。ここで
{% load static %}
<script type="text/javascript" src="{% static 'dist/polyfills.js' %}"></script>
はproject
はトップレベルの保持している私のディレクトリ構造(簡略化のために省略し、いくつかのファイル)、次のとおりです。注入され<script></script>
タグもDjangoの「静的ファイル」の表記を使用するように更新する必要がありますDjangoプロジェクト。
project
+ angular
+ app (angular application root)
+ config
+ node_modules
+ src
- webpack.config.js
+ static
+ dist (webpack output folder)
- app.[hash].js
- vendor.[hash].js
- polyfills.[hash.js
- index.html
+ templates
- index.html
- 注:私は、私は非常に簡単にindex.htmlをを移動/コピーすることができます知っているが、私はまた、Djangoの静的ファイルを使用するタグを必要としています。
説明のために。 Djangoが提供する現在の "templates/index.html"ファイルがここにあります。これはそのまま動作します。私はdisファイルの命名に[ハッシュ]を使い、ここに自動的に更新したいので、可能であればwebpackにこのファイルを生成させたいと思います。だからapp.[hash].js
、vendor.[hash].js
、polyfill.[hash].js
と私の角型アプリケーションがwebpackによって構築されたときにDjangoテンプレートが更新されます。
テンプレート/ index.htmlを
{% load static %}
<html>
<head>
<base href="/">
<title>App</title>
<link href="{% static 'dist/app.css' %}" rel="stylesheet">
</head>
<body>
<my-app>Loading...</my-app>
<script type="text/javascript" src="{% static 'dist/polyfills.js' %}"></script>
<script type="text/javascript" src="{% static 'dist/vendor.js' %}"></script>
<script type="text/javascript" src="{% static 'dist/app.js' %}"></script>
</body>
</html>
これは間違った方法です。 index.htmlは、Djangoによってレンダリングされた後、Angularによって使用されるテンプレートでなければなりません。 –
はい、私は理解しており、それは現在どのように実装しているのですか。私が達成したいのは、webpackがDjango用のテンプレートファイルを生成して、名前に[ハッシュ]を持つバンドルを生成できるようにすることです。djangoはファイル名を認識します。 – Codewise