Django中的静态URL和CSS [重复]

Posted

技术标签:

【中文标题】Django中的静态URL和CSS [重复]【英文标题】:Static URL and CSS in Django [duplicate] 【发布时间】:2013-03-09 06:47:30 【问题描述】:

我正在尝试在 Django 中设置一个静态 url,并让我的模板使用它来链接到 css。这是我的代码。为什么它不起作用?另外,设置它的最佳做法是什么?谢谢。

# settings

import os

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

STATICFILES_DIRS = (

)

INSTALLED_APPS = (
    ...
    'django.contrib.staticfiles',
    )


# urls

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# ... the rest of my URLconfs here ...

urlpatterns += staticfiles_urlpatterns()


# html template

<link rel="stylesheet" href=" STATIC_URL css/style.css" type="text/css">

# file structure
-project
--project
---settings
---static
----css
-----style.css

【问题讨论】:

【参考方案1】:

您的STATICFILES_DIRS 需要包含一个用于开发的静态目录的路径列表。 STATIC_ROOT 设置用于将静态文件收集到生产中的单个目录中,以供 HTTP 服务器(如 nginx 或 Apache)提供服务。

既然您已经定义了PROJECT_ROOT,您可以这样做:

# Assuming your settings.py is at the same level as your static directory
STATICFILES_DIRS = [
    os.path.join(PROJECT_ROOT, 'static'), ]

【讨论】:

仍然不适合我。还有更多提示吗? 也试试@catherine的回答。 好吧,肯定有其他问题,因为即使我将它与样式表的确切文件路径链接起来,它也没有使用 css,但我在 django 之外的另一个文件上对其进行了测试,它运行良好。

以上是关于Django中的静态URL和CSS [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Django - 引用模板中的静态文件

django 改了静态文件但是页面没有变

在 Django 中的 css 文件中加载静态文件

django基础知识之管理静态文件css,js,images:

Django框架静态文件配置和URL解析

CSS 文件中的 Django 媒体 URL