繁体   English   中英

本地开发时的Django静态文件-如何提供绝对服务?

[英]Django static files when locally developing - how to serve absolutely?

这应该是非常简单的,但是不知何故它使我整个上午都陷入困境。 我正在使用django调试服务器在本地开发,并具有以下文件结构:

/project/ (django project)
/static/ (static files)

在settings.py中,MEDIA_ROOT和MEDIA_URL都设置为'/ static /',我在urls.py中使用它

url(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': '../static'}),

在我的模板中,需要从静态目录作为服务器的文件配置如下:

<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css">

所有功能均应正常运作-javascript / css / images均可以从hompage中正常投放。 但是,当我转到子目录(例如http://127.0.0.1:8000/news/)时,所有链接都断开了。

我尝试使用各种os.import选项来使其正确执行相对链接,但是还没有运气。 有没有一种方法可以强迫它相对于基本URL,或者将其硬编码到我的文件系统中?

任何帮助都将是惊人的!

我也遇到了同样的问题,我通过从STATIC_URL ='/ static /'中删除第一个斜杠并将其设置为STATIC_URL ='static /'来解决了该问题,就像上面的philipbe一样。 奇怪的是,'/ media /'同时适用于MEDIA_URL(而'media /'则中断了布局)。

无论如何-只需将STATIC_URL更改为等于'static /',并且不使用斜杠,就可以解决它。

在urls.py文件的这一行中, '../static'应更改为绝对目录。 尝试更改它,看看会发生什么。

您的档案:

url(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': '../static'}),

应该看起来像:

url(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/full/path/to/static'}),

举个例子,我的设置略有不同,但是我仍然使用完整路径。

这是我的设置方法:在settings.py

STATIC_DOC_ROOT = '/Users/kylewpppd/Projects/Django/kl2011/assets/'

并在urls.py

(r'^assets/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes':True}),

我正在从'localhost:8000/assets/'提供我的静态文件。

转到子目录时,链接如何断开? 您能否进一步解释一下。

django 1.3是否支持静态媒体某种奇怪的相对URL路由?

如果可以从首页而不是其他网站上投放广告,那听起来像不是您的STATIC_URL是相对位置吗?

您的STATIC_URL是什么? 它应该是绝对的,并以斜杠开头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM