繁体   English   中英

Django-使用视图而不是django.contrib.staticfiles提供静态信息

[英]Django - Serving statics with views and not with django.contrib.staticfiles

我是DJango的新手,我需要更改当前的静态服务模式,从Apache配置中删除/ static别名(从default_settings中删除相对的STATIC_URL)

 Alias /static/           /usr/local/app/static/

在Django设置上:

STATIC_URL = '/static/'

使用本地视图访问内部服务。

我在settings.py中添加了一个新常量

STATIC_WEB_ROOT = os.path.join(BASE_DIR, 'static/frontend/')

urls.py

from django.conf.urls.static import static

url(r'^%sstatic/(?P<path>.*)$' % , static  , {'document_root': STATIC_WEB_ROOT }, name='static.file.serve'),

index.html

<script type="text/javascript" src="{% url 'static.file.serve' 'frontend/js/jquery-3.2.1.min.js'                    %}" ></script>

不幸的是,我得到了404:

"GET /static/frontend/js/jquery-3.2.1.min.js HTTP/1.1" 404

我的设置有两点错误:

导入urls.py的正确模块是:

from django.views.static import serve

在默认设置中,必须禁用(如果存在):

'django.contrib.staticfiles'

这是暴露静电的经典方法

然后,您可以在网址中使用:

url(r'^%sstatic/(?P<path>.*)$' % BASE_URL_PREFIX  , serve  , {'document_root': STATIC_WEB_ROOT }, name='static.file.serve'),

暂无
暂无

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

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