我有一个Angular 4/Django应用程序,它是Django应用程序中的所有角码。角度的应用程序是使用webpack构建的。Webpack:生成index.html以便与Django一起使用
我想webpack将.js包输出到“静态”文件夹中,将“index.html”文件输出到“模板”文件夹中。被注射的<script></script>
标签也将需要更新使用Django的“静态文件”符号:
{% load static %}
<script type="text/javascript" src="{% static 'dist/polyfills.js' %}"></script>
这里是我的目录结构(一些文件,不再赘述),其中project
是顶级持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”文件。这工作正常。如果可能的话,我想让webpack生成这个文件,因为我想在dis文件的命名中使用[hash],并且在这里自动更新。所以我会有app.[hash].js
,vendor.[hash].js
,polyfill.[hash].js
和Django模板会在我的角度应用程序由webpack构建时更新。
模板/ 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的模板文件,以便我可以生成名称中包含[hash]的包,并且django知道文件名。 – Codewise