python - Django 加载静态文件?

标签 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>

抱歉,我知道这个问题已被问过多次,并且我已经尝试了所有这些解决方案,但没有成功。我花了两天时间试图解决这个问题

最佳答案

我对静态文件采取的方法基本上是 docs 中概述的。 .

在本地开发中,Django 将自动从 STATIC_ROOT 中指定的目录提供静态文件。只要django.contrib.staticfiles在你的 INSTALLED_APPS 中和DEBUG = 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

settings.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 url 的属性而不是 src

关于python - Django 加载静态文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30130308/

相关文章:

python - django-mptt 中的动态顺序

python - 查找列表的 x 最小值的索引

python (openpyxl) : Put data from one excel file to another (template file) & save it with another name while retaining the template

java - Python服务器和Java客户端: Server recieves message but Client doesn't receive reply

python - 在 Python 中查询连接的 USB 设备信息的简单方法?

javascript - 如何使用 JS 获取用户输入以在视频进度上创建标记?

jQuery - 将 div append 到 body,body 是对象?

html - 什么是不可替换的内联元素?

POST 表单提交后 Django 显示消息

database - 为什么 django 检查 settings.DATABASE_NAME db 是否实际存在以运行测试用例?