2015-05-08 223 views
1

Django没有加载我的静态文件。但它正在加载我的模板,它们在静态文件夹中。此外铬没有看到静态文件,我甚至没有得到404错误,是的,他们是链接在HTML ...但他们没有出现在网络面板Django加载静态文件?

继承人我的settings.py文件

STATIC_ROOT = '' 

    STATIC_URL = '/static/' 

    STATICFILES_DIRS =(
     os.path.join(BASE_DIR, 'static'), 
    ) 

这里是我的html

<head> 
     <title>MySite | Home</title> 
     <meta charset="UTF-8"> 
     <link rel="stylesheet" type='text/css' src='css/normalize.css'> 
     <link href='http://fonts.googleapis.com/css?family=Questrial|Josefin+Sans' rel='stylesheet' type='text/css'> 
     <link rel="stylesheet" type="text/css" src='css/main.css'> 
     <script src="https://maps.googleapis.com/maps/api/js"></script> 
    </head> 

对不起,我知道这个问题已经被问多次,我已经试过,没有运气所有这些解决方案。我花了2天的时间试图弄清楚这个问题

+0

你的模板为什么会在静态文件夹中? –

+0

@DanielRoseman这不好吗?我看过的教程就是这么做的,那里对他们来说会更好? – Groovietunes

+2

我几乎不知道如何回应。这些是完全不同的东西。我非常怀疑任何体面的教程会这样做。无论如何,你还没有提供足够的信息来回答这个问题。你在开发中运行吗? DEBUG是真是假?为什么你的'STATIC_ROOT'是空的?你运行了'manage.py collectstatic'吗?你的TEMPLATE_DIRS的价值是什么?为什么你使用相对路径来指向你的模板中的CSS文件? –

回答

1

我使用静态文件的方法基本上是docs中列出的。

在当地的发展,Django会从只要在STATIC_ROOT指定的目录中自动提供静态文件作为django.contrib.staticfiles在你INSTALLED_APPSDEBUG = True

我的项目结构通常是这样的:

my_project/ 
    some_app/ 
    lib/ 
    static/ <------- STATIC_ROOT - used in production. `collectstatic` collects here 
    static_assets/ <- STATICFILES_DIRS - used in local dev 
     css/ 
     less/ 
     js/ 
     images/ 
    templates/ <---- TEMPLATE_DIRS 
    manage.py 

设置.py通常是:

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

STATIC_URL = '/static/' 
STATIC_ROOT = os.path.join(BASE_DIR, 'static') 
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static_assets'), 
) 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
) 

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'), 
) 

然后在模板中,你可以再次使用staticfiles应用的模板标记来构建路径静态文件:

{% load static from staticfiles %} 

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

也要注意,使用<link>标签,你需要使用href财产的网址,而不是src

+0

非常感谢!问题出在HTML文档的load static和href修复了这个问题。我想最好是逐字按照文档! – Groovietunes

+0

不客气。总是乐于提供帮助。 – Brandon