当前位置: 首页 > 面试题库 >

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

慕容晔
2023-03-14
问题内容

有人问过这个问题的变体,但是在渲染模板时,我仍然无法正确加载样式表。

我正在尝试在开发过程中通过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"


 类似资料:
  • 图片 使用 Materialize 可以使用不同的方法给图片样式。 响应式图片 是图片的宽度适应页面的宽度,你可以增加类 responsive-img 到图片标签中。 现在它有 max-width: 100% 和 height:auto。 <img class="responsive-img" src="cool_pic.jpg"> 圆形图像 为了使用图片出现圆形,给它们增加 cla

  • 问题内容: 我想知道如何通过更新的Sails版本提供引导模板。我是否应该将JS的链接更新为其他链接。我尝试将js和图像移动到资产文件夹中,但是javascript无法正常工作。Sails文档在该主题上非常差。任何人都可以告诉一个简单的方法来集成它。提前致谢 问题答案: Sails 0.9.x已移至使用Grunt处理资产。这使您可以进行多种不同的预编译和资产处理。默认情况下,无法将自动资产注入到视图

  • 这是HTML中可用的CSS,但我正在尝试将HTML转换为WordPress,同时在function.php中链接我的样式表(function urania_script_enqueue(){wp_enqueue_style('customstyle',get_template_directory_uri()。/CSS/urania.CSS',array('$handle','$src','$dep

  • 问题内容: 当你事先不知道某个属性的名称时,Python的getattr()方法很有用。 此功能也将在模板中派上用场,但我从未想出实现此目的的方法。是否存在可以执行动态属性查找的内置标记或非内置标记? 问题答案: 最近,我还必须将此代码编写为自定义模板标签。要处理所有查找方案,它首先进行标准的属性查找,然后尝试进行字典查找,然后尝试进行getitem查找(以使列表起作用),然后在对象为对象时遵循标

  • 问题内容: 我想在Django模板标签中连接一个字符串,例如: 这是我的变量,我想将其与其余路径连接起来。 假设我有并且我想要结果扩展。 问题答案: 用于: