首先,我用的是django4.2,python3.10版本
本來,如果在settings.py中使用 DEBUG = True,那么什么問題也沒有,當然,這屬于調(diào)試模式。
DEBUG = True
TEMPLATE_DEBUG = DEBUG
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static").replace('\\', '/')
]
一切正常.....
但是,當我準備提交代碼時,將 DEBUG 改為 False 時.....
DEBUG = False
TEMPLATE_DEBUG = DEBUG
好好的admin界面,變成了這樣....
而且,好好的靜態(tài)資源,也沒法訪問了:
?郁悶啊.....
網(wǎng)上的帖子,關于這方面的也比較多....
我看的是這一篇:徹底解決:django設置DEBUG=false時導致靜態(tài)文件丟失問題_云霄IT的博客-CSDN博客
?實踐一下吧...
DEBUG = False
TEMPLATE_DEBUG = DEBUG
# STATIC_URL = '/static/'
# STATICFILES_DIRS = [
# os.path.join(BASE_DIR, "static").replace('\\', '/')
# ]
STATIC_ROOT = os.path.join(BASE_DIR, "static")
再urls.py中添加點東西:
from django.urls import path, include, re_path
from django.views import static
from django.conf import settings
from . import siteconfig as siteconfig
urlpatterns = [
re_path(r'^js/(?P<path>.*)$', static.serve,
{'document_root': siteconfig.JS_DIR}),
re_path(r'^css/(?P<path>.*)$', static.serve,
{'document_root': siteconfig.CSS_DIR}),
re_path(r'^images/(?P<path>.*)$', static.serve,
{'document_root': siteconfig.IMAGE_DIR}),
re_path(r"^static/(?P<path>.*)$", static.serve,
{"document_root": settings.STATIC_ROOT}, name='static'),
]
然后,就變成了這樣....
好吧....靜態(tài)資源確實能訪問了.....但是.....他喵的,admin界面都沒了....就沒了....就他喵的,沒了....
好痛苦啊.....
這個時候,想著有沒有一種可能,DEBUG = True 的時候,settings.py 那幾項,不用注釋掉,大家共存下,可好?
DEBUG = False
TEMPLATE_DEBUG = DEBUG
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static").replace('\\', '/')
]
STATIC_ROOT = os.path.join(BASE_DIR, "static")
結果,好像,不太好....
django不讓搞共存啊....
最后,突然發(fā)現(xiàn)....錯誤只說?STATICFILES_DIRS 不準和?STATIC_ROOT 共存,沒說?STATIC_URL 不讓共存啊....
那這樣呢....
DEBUG = False
TEMPLATE_DEBUG = DEBUG
STATIC_URL = '/static/'
# STATICFILES_DIRS = [
# os.path.join(BASE_DIR, "static").replace('\\', '/')
# ]
STATIC_ROOT = os.path.join(BASE_DIR, "static")
于是乎....
啥都好了....哎....
好吧,特此記錄吧....網(wǎng)上的帖子不是說就是錯的....只是說,對于Django4.2.3,python3.10這個搭檔來說,其實主要還是對 django4.2 這個曾新瓦亮的版本來說,是真的行不通啊.....千萬別干掉?STATIC_URL 參數(shù)....有它在就是晴天啊....?
關于,DEBUG=False,其實還有一個問題....
就是現(xiàn)在簡單的admin正常了,那是因為,我的服務本身就是自定義了admin界面,所以,這樣改以后沒問題了,但是,django,會有許多三方包配有靜態(tài)文件,這樣以來....好吧...
調(diào)試模式的時候是這樣的:
DEBUG=False的時候,是這樣的....
郁悶的啊...rest_framework模塊就成了這球樣子了.....
然后就是一堆報錯:
所以 ,就是說,還需要將rest_framework模塊里的static文件也得搞出來,放到我們給的static_root路徑下才行....
手動copy Paste,遷過來可以....我就是這么干的....問題也被解決了...
但是,在網(wǎng)上找了找....我靠,django本身自帶這種操作啊...一條命令就搞定了....文章來源:http://www.zghlxwxcb.cn/news/detail-642310.html
python3 manage.py collectstatic
django 會把所有的 static 文件都復制到 STATIC_ROOT 文件夾下....一勞永逸啊....文章來源地址http://www.zghlxwxcb.cn/news/detail-642310.html
到了這里,關于解決:django設置DEBUG=false時出現(xiàn)的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!