Django加载静态文件?

时间:2015-05-08 18:14:18

标签: python html django

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

继承我的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 :(得分:1)

我对静态文件采用的方法基本上是docs中列出的内容。

在本地开发中,只要STATIC_ROOT django.contrib.staticfilesINSTALLED_APPS

中的DEBUG = True,Django就会自动从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 中指定的目录提供静态文件

我的项目结构通常如下所示:

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'),
)

settings.py通常是:

{% load static from staticfiles %}

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

然后在模板中,您可以再次使用staticfiles应用程序的模板标签构建静态文件的路径:

<link>

另请注意,对于href标记,您需要使用src属性作为网址,而不是var full_map; var locations_map;

答案 1 :(得分:0)

在您的setting.py文件中添加此

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

在应用中创建一个名为static的文件夹,并在模板文件中添加此{%load static%}