我用相同的堆栈做了一个项目。在我的例子中,整个前端位于 Django 项目目录中一个名为 static 的文件夹中。此静态文件夹在您的 Django 项目的 settings.py 文件中定义为静态根目录。
所以,第一个 html 文件,比如 index.html 是通过 Django 使用其渲染引擎提供的,然后使用 Angular 的 uiRouter 和所有这些部分加载所有部分驻留在静态文件夹中,以便它们可以用作静态文件。
除了部分,所有其他静态媒体(如 CSS、JS 和图像)也驻留在静态根目录中。
index.html的快照:
{% load staticfiles %}
<html>
<head>
<link href="{% static 'development/assets/stylesheets/lib/normalize.css' %}" rel="stylesheet" type="text/css">
</head>
</html>
如您所见,所有静态媒体的路径都是相对于静态根目录定义的。下面是静态根定义的样子:
settings.py:
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
# Look here for `static` resource
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
以下是 Angular 应用程序配置中定义的 uiRouter 状态的快照:
$stateProvider.state("home", {
url: "",
controller: "HomeCtrl",
templateUrl: "/static/development/templates/home.html"
})