【发布时间】:2020-10-20 10:41:05
【问题描述】:
这是我在 django 的第一个项目,所以我不知道很多事情。首先,我想从 django STATIC_ROOT 提供静态文件,而不是 STATICFILES_DIRS。 这是我的项目树:
src >>
...db.sqlite3
...manage.py
...mainapp (main module)
...__init__.py
...settings.py
...urls.py
...wsgi.py
...myapp (django app)
...Migrations(Folder)
...__init__.py
...admin.py
...apps.py
...models.py
...tests.py
...views.py
...accounts (django app)
...Migrations(Folder)
...__init__.py
...admin.py
...apps.py
...models.py
...tests.py
...views.py
...templates
...myapp
...home.html
...accounts
...
...
...static
...myapp
...css
...bootstrap.css
...home.css
...js
...images
...accounts
...
...
...
...static_cdn (STATIC_ROOT)
...admin
...
...
...
...myapp
...css
...js
...images
...accounts
...css
...js
...images
在 settings.py 中:
INSTALLED_APPS = [
'myapp',
'accounts',
.....,
.....,
.....,
'django.contrib.staticfiles',
]
.......
.......
.......
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR,'static_cdn')
在 urls.py 中:
from django.contrib import admin
from django.urls import path
from django.conf import settings
from django.conf.urls.static import static
.......
from myapp.views import (
.......,
.......,
)
from accounts.views import (
.......,
.......,
)
urlpatterns = [
.......,
.......,
.......,
]
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
在模板中的 home.html 中:
<!DOCTYPE html>
{% load static %}
<html lang="en">
<head>
<meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1">
<title>.......</title>
<link rel="stylesheet" type="text/css" href="{% static 'myapp/css/bootstrap.css'%}"/>
<link rel="stylesheet" type="text/css" href="{% static 'myapp/css/home.css'%}"/>
</head>
<body>
.......
.......
.......
</body>
</html>
然后我运行命令:
(clashsite) D:\DjangoSite\clashsite\src>python manage.py collectstatic
然后会发生以下情况:
211 static files copied to 'D:\DjangoSite\clashsite\src\static_cdn'.
现在,端点,我想要的是:我不想从树中的“static”文件夹中提供静态文件,而是从“static_cdn”文件夹中提供静态文件。更准确地说,我不想提供静态文件来自 STATICFILES_DIRS ,但来自 STATIC_ROOT。 但内容仅来自静态文件夹。如果我删除静态文件夹,静态文件不提供来自 static_cdn 或STATIC_ROOT。我该怎么做??
【问题讨论】:
标签: django