python - Django:您如何提供媒体/样式表并在模板中链接到它们

标签 python css django django-templates media

已询问过此问题的变体,但在呈现模板时我仍然无法正确加载样式表。

我正在尝试在开发过程中从 Django 进程中提供静态媒体 - 我知道,在生产中强烈建议不要这样做。我将发布我的配置和模板,希望有人能帮助我了解我哪里出错了。

请注意,我确实尝试按照 Django 元素网站上的示例进行操作,但是它没有提到如何从模板中引用您的样式表。我还尝试了同一事物的许多不同变体,因此我的代码/设置可能与描述的有所不同。

settings.py

MEDIA_ROOT = 'D:/Dev Tools/django_projects/dso/media'
MEDIA_URL = '/media/'
ADMIN_MEDIA_PREFIX = '/media/'

urls.py

from django.conf.urls.defaults import *
from django.conf import settings
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/(.*)', admin.site.root),
    (r'^ovramt/$', 'dso.ovramt.views.index'),
)

if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
    )

在我的模板中:

<head> 
<title> {% block title %} DSO Template {% endblock %} </title> 
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
<link rel="stylesheet" type="text/css" href="../media/styles.css">
</head>

我向您保证,文件(模板/媒体)位于我的文件系统上的正确目录中。如果我需要提供任何额外信息,请发表评论。


编辑:

我遇到的一个问题是在链接前使用了“/”。如果添加了正斜杠,则从站点的根目录打开链接。如果没有正斜杠,则在当前级别打开链接。一个例子:

www.example.com/application/有一个链接“/app2/”和一个链接“app3/”。
app2 将在 www.example.com/app2/打开,app3 将在 www.example.com/application/app3/打开。我想这让我很困惑。

最佳答案

我只需要自己解决这个问题。

settings.py:

MEDIA_ROOT = 'C:/Server/Projects/project_name/static/'
MEDIA_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/media/'

urls.py:

from django.conf import settings
...
if settings.DEBUG:
    urlpatterns += patterns('',
        (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}),
    )

模板文件:

<link rel="stylesheet" type="text/css" href="/static/css/style.css" />

文件位于此处:

"C:/Server/Projects/project_name/static/css/style.css"

关于python - Django:您如何提供媒体/样式表并在模板中链接到它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/446026/

相关文章:

javascript - 元素在父 div 中的随机位置

html - 网格元素扩展以跟随列之间的偏移

Django 初始化期间 Django 迁移失败

python - 使用 Python 自动裁剪图像以提取内部黑色边框 ROI

python - 如何从 selenium webelement 或 lxml 获取 XPath?

html - 页面底部的额外空间

python - Django 发出多对多变化的信号

python - 使用 boto 获取 S3 对象的最后修改日期时间

python - 使用 BeautifulSoup 查找嵌套标签的原始位置

python - 设置或更改类的属性时如何在 Django 中设置时间戳