【问题标题】:Django doesn't load static filesDjango 不加载静态文件
【发布时间】:2017-11-08 09:18:38
【问题描述】:

我有一个 Django 项目,但静态文件有问题。它们没有加载。

在我的setting.py中我有:

STATIC_ROOT = 'static'
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = STATIC_URL + "grappelli/"

STATICFILES_DIRS = (INSTALLED_FOLDER + ('' if DEV_MACHINE else (SALES_COMPANY_CODE_LOWER + '/')) + '/Autralis/libStatic',)

接下来我加载了我的样式:

ln -s /data /users/my_name/Projects/autralis/Autralis/libStatic/data
ln -s /users/my_name/Projects/autralis/Autralis/libStatic  /users/my_name/Projects/autralis/Autralis/static

我得到静态文件夹如下:

基础模板中的样式链接如下:

<link href="/static/autralis/css/base.css" rel="stylesheet" type="text/css" />

如果我点击链接得到page not found,如下所示:

知道如何解决这个问题吗?

【问题讨论】:

标签: django django-staticfiles


【解决方案1】:

我会给你一个来自我的 Django 项目的例子。也许它可以帮助你;)

我的项目树:

在我的 settings.py 文件中,我有:

STATIC_URL = '/static/'
THEME_DIRS = os.path.join(BASE_DIR, "static", "Theme/")
STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"), THEME_DIRS, ]

PROJECT_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = os.path.join(PROJECT_DIR, 'static/')

我的 HTML 文件得到:

{% load staticfiles %}
{% load static %}

...
<link rel="stylesheet" type="text/css" href="{% get_static_prefix %}{{ mytheme }}/css/Base_Accueil.css"/>

使用 context_processors.py 文件:

def GetTheme(request):
    return {'mytheme' : Theme.objects.values_list('favorite_theme').last()[0].encode("ascii")}

或更简单:

{% load staticfiles %}
{% load static %}

    ...
<link rel="stylesheet" type="text/css" href="{% static 'css/Base_Identity.css' %}"/>

【讨论】:

  • 2021 年肯定有更好的方法来做到这一点?!你用"{% static 'css/Base_Identity.css'%}"做什么,对吧?
猜你喜欢
  • 1970-01-01
  • 2012-04-30
  • 2020-12-10
  • 2013-12-09
  • 2021-11-20
  • 2021-05-30
  • 2017-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多