【发布时间】:2017-08-09 08:40:44
【问题描述】:
我在Vuejs 中构建了一个相当简单的网络应用程序,它使用默认的npm run dev 命令和webpack 运行。 Vue 应用程序正在使用我使用 django-rest-framework 构建的 Django 的 api。并且每当 Vue 应用程序发生变化时,它会自动热重载,这非常棒。
现在我想使用 django 而不是 webpack 运行 Vue 应用程序。我的意思是 Django 将响应一个 html 模板文件,而 Vuejs 应用程序将在该 html 文件上运行单页应用程序。
我现在做的是先运行这个命令:
npm run build
然后我将 dist/static/ 文件夹文件复制到 django static 文件夹中。最后将其加载到模板中:
index.html
{% load static %}
<!DOCTYPE html>
<html>
<head>
...
...
<link href="{% static "css/app.e446b60204fec1f9f5510c711523ffca.css" %}" rel=stylesheet>
</head>
<body>
<div id="app"></div>
<script src="{% static "js/manifest.88376ea5d07804f39ff7.js" %}"></script>
<script src="{% static "js/vendor.e0e5105739e9947a23e7.js" %}"></script>
<script src="{% static "js/app.571e9140518a5bae898c.js" %}"></script>
</body>
</html>
现在,如果我需要更改 Vue 应用程序,我必须重新构建它,复制文件并将其加载到模板中,这看起来很长。
所以,我希望有更好更短的方法来混合 Django 和 Vuejs。
【问题讨论】:
-
我想我要做的是更改
npm run build将文件直接放入您的django static 文件夹,因为将它们放入dist/static 文件夹然后传输它们确实没有任何好处。我不太确定为什么生成的文件名并不总是相同的,这意味着您根本不必更改模板。我自己对 Vue 比较陌生,但希望这会有所帮助! -
除了@ChristopherShroba 之外,
django-webpack-builder可能会对您有所帮助。 -
@ChristopherShroba 是的,我认为这是一种方法。您如何处理 bulid 文件的命名?
-
@nik_m 谢谢。我会调查的。