【问题标题】:static files copied, css not being used复制静态文件,未使用 css
【发布时间】:2013-11-19 22:04:14
【问题描述】:

路径看起来有点奇怪,但这是我的第一个 Django 应用程序,我正在学习 :)

setting.py

STATIC_ROOT = os.path.join(SITE_ROOT, 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    ('assets', 'C:\Users\Szymon\Desktop\UploaderUpdate\Uploader\uploader\static'),
)

urls.py

urlpatterns += staticfiles_urlpatterns()

main.html(模板)

{% load static %}
<link rel="stylesheet" href="{% static 'assets/css/style.css' %}">

然后在我的 cmd 中执行以下操作: python manage.py collectstatic 它说复制文件。现在,我的(我创建的)静态文件夹位于:

C:\Users\Szymon\Desktop\UploaderUpdate\Uploader\uploader

不幸的是,主应用程序位于文件夹 main 中,因此它在以下位置创建了文件夹 static

C:\Users\Szymon\Desktop\UploaderUpdate\Uploader\uploader\uploader\static

它包含assetsadmin。但是我的 CSS 没有被使用,尽管我在模板中导入了。我链接错了吗?

【问题讨论】:

  • 你在使用DEBUG = True吗?

标签: python css django static django-staticfiles


【解决方案1】:

不妨试试

STATICFILES_DIRS = (os.path.join(SITE_ROOT,'static'))?

我不知道为什么绝对路径似乎不起作用。但是 python manage.py collectstatic 应该将所有静态文件放在由 STATIC_ROOT 定义的静态目录中,该目录使用 SITE_ROOT(或来自https://docs.djangoproject.com/en/1.6/howto/static-files/ 的 BASE_DIR。(如果可以的话,我会避免使用本地绝对路径,因为一件事可以为您提供投入生产时做更多工作。)您的 SITE_ROOT 也是这样的吗?

SITE_ROOT = os.path.dirname(os.path.abspath(__file__))

我 99% 确定这给出了您的 settings.py 文件所在目录的绝对路径,所以如果您使用它,您的静态文件夹应该与您的设置文件位于同一目录中。

【讨论】:

    【解决方案2】:

    尝试改变这个:

    {% load static %}
    <link rel="stylesheet" href="{% static 'assets/css/style.css' %}">
    

    作者:

    <link rel="stylesheet" href="{{ STATIC_URL }}css/style.css">
    

    【讨论】:

      【解决方案3】:

      我设法做到了 - 指向 CSS 的链接需要在我的模板的 {% header %} 部分中。

      【讨论】:

        猜你喜欢
        • 2013-02-26
        • 2020-08-31
        • 2021-08-26
        • 1970-01-01
        • 2021-12-01
        • 2020-04-28
        • 2021-11-04
        • 2022-01-20
        • 2011-06-18
        相关资源
        最近更新 更多