Django不会检索静态文件。

15 浏览
0 Comments

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 %}
 

    
    
    
    管理仪表板
    
    
    
    


        
        
        
            
            {% block content %}
            {% endblock %}
    
    
    
    
    
    
    

然而,它似乎没有加载任何来自我的css文件的样式。

我预期的结果应该是这样的:

enter image description here

然而,我的实际结果是这样的:

enter image description here

我应该提到的是,当我使用Chrome打开相同的文件作为html格式时,它工作正常。一旦我将其连接到Django并尝试获取静态文件,似乎它不起作用。

非常感谢您的帮助。

0
0 Comments

问题出现的原因是在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就能正确地检索和使用静态文件了。

0
0 Comments

问题的出现的原因是将静态文件夹放在了主应用程序的文件夹中,而不是放在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

我再次检查了你的建议,你是对的。我在项目结构中犯了一个错误。谢谢!

0