我是DJango的新手,我需要更改当前静态服务模式,从Apache配置中删除/ static Alias(以及从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
答案 0 :(得分:0)
我的设置有两点错误:
要在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'),