Django不会检索静态文件。
Django不会检索静态文件。
我需要与Sql Server一起工作,所以我使用Django==2.1。然而,我在静态文件方面遇到了问题。我已经阅读了以前的帖子,但似乎没有一个在我的情况下起作用。
项目结构
- A: 管理仪表板 -- B: 主要应用 ----- C: 迁移 ----- C: 静态文件 ----- C: admin.py ----- C: apps.py . . ----- C: views.py -- B: 管理仪表板 ----- C: settings.py ----- C: urls.py ----- C: wsgi.py -- B: 模板 -- B: db.sqlite3 -- B: manage.py
我的settings.py文件如下所示:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'MainApp.apps.MainappConfig', 'ManagementDashboard', ] STATIC_ROOT = os.path.join(BASE_DIR, 'static') STATIC_URL = '/static/'
我的base.html文件如下所示:
{% load static %}管理仪表板 AVS
{% block content %} {% endblock %}
然而,它似乎没有加载任何来自我的css文件的样式。
我预期的结果应该是这样的:
然而,我的实际结果是这样的:
我应该提到的是,当我使用Chrome打开相同的文件作为html格式时,它工作正常。一旦我将其连接到Django并尝试获取静态文件,似乎它不起作用。
非常感谢您的帮助。
问题出现的原因是在Django项目中无法检索静态文件。出现这个问题的原因是在设置文件(settings.py)中没有将项目名称添加到INSTALLED_APPS列表中。
要解决这个问题,只需将项目名称添加到INSTALLED_APPS列表中即可。在设置文件(settings.py)中找到INSTALLED_APPS列表,并将项目名称添加到列表中。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'yourprojectname', ]
在上面的代码中,将'yourprojectname'替换为实际的项目名称。然后保存设置文件。
这样,Django就能正确地检索和使用静态文件了。
问题的出现的原因是将静态文件夹放在了主应用程序的文件夹中,而不是放在B: static文件夹中。解决方法是将静态文件夹放入B: static文件夹中,并在settings.py中添加以下代码:
开发环境:
STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static') ]
生产环境:
STATIC_ROOT = "/var/www/example.com/static/"
还需要在项目级别的url.py中添加以下代码:
from django.conf import settings from django.conf.urls.static import static urlpatterns = [ # ... 其余的URLconf放在这里 ... ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
如果按照以上步骤操作后没有改善情况,可能是HTML代码的问题吗?这种情况可能发生吗?
你将静态文件夹放在应用程序文件夹的外部了吗?我的意思是应用程序、模板和静态文件应该在同一个项目目录中,静态文件夹不应该在应用程序文件夹中。
是的,我仔细按照你的指示操作了。然而,仍然没有任何改变。
那么请尝试这个链接:stackoverflow.com/questions/12809416
我再次检查了你的建议,你是对的。我在项目结构中犯了一个错误。谢谢!