Django媒体URL和媒体根问题与CSS

Django媒体URL和媒体根问题与CSS,css,django,django-templates,django-urls,Css,Django,Django Templates,Django Urls,我有一个非常类似的问题,但不幸的是,没有一个解决方案似乎对我有效 基本上,我有以下非常简单的目录: ulogin - models.py - tests.py - views.py - media - screen.css - templates - utemplate - index.html 在mysettings.py中,我定义了以下内容: MEDIA_ROOT = '../compwebsite/ucode/ulogin/media' MEDIA_UR

我有一个非常类似的问题,但不幸的是,没有一个解决方案似乎对我有效

基本上,我有以下非常简单的目录:

ulogin
 - models.py
 - tests.py
 - views.py
 - media 
   - screen.css
 - templates
   - utemplate
     - index.html
在my
settings.py
中,我定义了以下内容:

MEDIA_ROOT = '../compwebsite/ucode/ulogin/media'
MEDIA_URL = '/media/'
index.html
中,我尝试引用
screen.css

<html>
<head> 
    <title>
        YAY TITLE
    </title>
    <link rel="stylesheet" href="{{ MEDIA_URL }}screen.css">
<!--and it more...-->

无论我做什么,我都无法让
screen.css
的引用正常工作。基于网站上的其他问题,我真的不确定如何解决这个问题。非常感谢您,如果您需要更多信息,请告诉我

静态文件应放在“静态”目录中;这就是Django将看到的地方。“媒体”目录用于保存用户上传的文件,当django服务器运行时,这些文件会被复制到静态目录

将您的
媒体\u URL
引用更改为
静态\u URL

您根本不必使用URLConf来管理静态文件

至于Django设置,最好不要硬编码绝对路径,以防它们发生更改(即当推送到部署服务器时)

更好的办法是这样做:

from os import path

PROJECT_ROOT = path.abspath(path.dirname(path.dirname(__file__)))

MEDIA_ROOT = path.join(PROJECT_ROOT, 'media/')

MEDIA_URL = ''

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    path.join(PROJECT_ROOT, 'static/'),
)
这将确保Django使用正确的绝对路径,而不管您的项目在系统中的什么位置


您还可以在
STATICFILES\u FINDERS
中启用DefaultStoreFinder,尽管这不是必需的。

您太棒了。我非常感谢你的帮助!非常感谢。
from os import path

PROJECT_ROOT = path.abspath(path.dirname(path.dirname(__file__)))

MEDIA_ROOT = path.join(PROJECT_ROOT, 'media/')

MEDIA_URL = ''

STATIC_ROOT = ''

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    path.join(PROJECT_ROOT, 'static/'),
)