[英]How to manage templates and static files for multiple apps in a Django project?
現在,我在同一個項目中運行了 2 個應用程序。 對於前端,我使用的是 Angular,所以理想情況下,我希望將所有這些放在一個地方。
但是,Django 的模板和靜態文件的處理方式是將它們放置在應用程序的文件夾中。
將這些放在一個位置的正確方法是什么? 我不需要在我的每個應用程序文件夾中都有模板和靜態文件夾,因為我的前端使用了一個框架。
例如:我的urls.py 中有這個
url(r'^$', TemplateView.as_view(template_name='base.html')),
如果我將 base.html 文件放在以下任一位置,這將起作用:
那么,做這種事情的傳統正確方法是什么?
Django 靜態設置
您可以使用靜態設置解決此問題,將所有靜態相關文件放入您需要的靜態文件夾中,例如示例
project/static/app1/css/style.css
project/static/app2/css/style.css
設置.py
import os
def root(folder):
return os.path.join(os.path.abspath(os.path.dirname(__file__)), '..',folder)
STATIC_ROOT = root('staticstorage')
STATIC_URL = '/static/'
# Additional locations of static files
STATICFILES_DIRS = (
root('static'),
)
網址.py
from django.conf.urls.static import static
from django.conf import settings
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
確保你有朗姆酒python manage.py collectstatic
在您的模板文件夾中
基本文件
<!DOCTYPE html>
<html lang="en">
<head>
<script src="/static/app1/js/jquery-1.10.1.min.js"></script>
</head>
<body>
</body>
</html>
base2.html
<!DOCTYPE html>
<html lang="en">
<head>
<script src="/static/app2/js/jquery-1.10.1.min.js"></script>
</head>
<body>
</body>
</html>
{% extends 'base1.html'%}
<h1>Hello world app1 </h1
{% extends 'base2.html'%}
<h1>Hello world app2 </h1>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.