[英]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.