你们能够帮助我解决上一个涉及 Django 的问题,所以我想我应该问另一个在过去几天里一直在折磨我的问题!
我有一个包含大约 6 个不同页面的小型应用程序元素,我可以让它们显示,但是我的 style.css 没有在网页上“显示”,我遵循了无数指南,包括 Django 的网站,我只是似乎无法正常工作。以下是一些我认为相关的文件:
public_html/mysite/nfl/templates/home.html :
{% load staticfiles %}
<!DOCTYPE HTML>
<html lang="en">
<head>
<title> Draftr Home Page </title>
<meta charset="utf-8">
<meta name = "viewport" content="width=device-width, initial-scale=1">
<!-- Using Bootstrap 3 framework with permission from getbootstrap.com -->
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
<!-- Custom Style Sheet -->
<link href="{% static 'style.css' %}" rel="stylesheet" media="screen">
style.css 位于此处 public_html/mysite/nfl/static和 /home/gobelogic/public_html/mysite/static (与管理员/一起)
/home/gobelogic/public_html/mysite/mysite :
import os.path
import sys
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
INSTALLED_APPS = (
#other
'django.contrib.staticfiles',
'nfl'
)
TEMPLATE_DIRS =
"nfl/templates",
)
STATICFILES_DIRS = (
'/home/gobelogic/public_html/mysite/nfl/static',
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')
好的,我将尝试解释我认为 django 是如何处理静态文件的,请纠正我的错误:
所以在 settings.py 中,django 定位了我元素中的所有静态目录,并将它们的内容放在一个目录中 static/在 manange.py 旁边(当我运行 manage.py collectstatic
在 html 文件中,我告诉 django 加载所有静态文件,以便我可以通过使用 {% load staticfiles %} 在顶部使用它们然后我用 <link href="{% static 'style.css' %}" rel="stylesheet" media="screen"> 说具体是哪一个通过这样做,django 使用 settings.py(?) 找到我放置这些静态文件的位置,然后以这种方式加载样式表
我再次在我的生产服务器上运行它,所以这些都不是通过服务器内置的 django 运行的,idk 是否重要
感谢您的帮助
编辑 使用 django 1.8
请您参考如下方法:
因为您没有使用 Django 内部服务器(这是正确的),您需要让您的生产 Web 服务器知道静态文件位置。 Apache ( https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/#serving-files ) 的 Django 文档中有一个示例。即使您没有使用 apache,通常您也需要确保从您的 STATIC_ROOT 指向的位置提供/static/或您的 STATIC_URL 指向的任何内容。
