Skip to main content
 首页 » 编程设计

python之如何让 css 和 django 在实时服务器上工作

2024年08月25日29grandyang

你们能够帮助我解决上一个涉及 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 指向的任何内容。