我在my_site/my_app/static/my_app/js
和my_site/my_app/static/my_app/css
中放置了静态文件。出于某种原因,下面的代码不会产生任何输出,这意味着它无法找到静态文件:
#my_app/templates/my_app/base.html
{% load staticfiles %}
这是setting.py
STATIC_URL = '/static/'
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'my_app', 'static', 'my_app',).replace('\\','/'),
)
STATIC_ROOT = ''
为什么?
答案 0 :(得分:2)
将django.contrib.staticfiles
添加到INSTALLED_APPS
中的settings.py
。
从STATICFILES_FINDERS
删除STATICFILES_DIRS
,STATIC_ROOT
,settings.py
。
将您的base.html
更改为以下内容:
{% load staticfiles %}
<!DOCTYPE html>
<html lang="fa">
<head>
<script type="text/javascript" src="{% static 'my_app/js/app.js' %}"></script>
<title>{{ title }}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
答案 1 :(得分:0)
在遇到以下变化后,我遇到了同样的问题。
在HTML页面中:
{% load static %} ## loads the static folder and images inside it.
<div id='button-holder'><img src="{% static "glass.png" %}" alt="Hi!" /></div> ## for images
src="{% static 'my_app/js/app.js' %} ## for scripts.
在urls.py
urlpatterns = patterns('',...
........
)+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
在这个运行命令之后,@丹尼尔罗斯曼提到了python manage.py collectstatic
。 findstatic
命令可以帮助您显示找到的文件。
示例
python manage.py findstatic css/base.css admin/js/core.js
您可以找到关于它的帮助here。
答案 2 :(得分:-1)
您应该运行manage.py collectstatic
将应用级静态文件复制到中央静态目录。