我已经搜索了类似的问题,但是没有找到答案。
我简单的webapp结构是:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
static/
test.txt
myfirstapp/
我已设置STATIC_URL ='/ static /' 和STATIC_ROOT = os.path.join(BASE_DIR,“静态”)
,当我启动django服务器时,我打印出静态路径 / home / pi / mysite / static,看起来正确
在我的模板中,代码是:
{% load static %}
<li><a href="{% static 'test.txt' %}">Test File</a></li>
如果单击链接,我总是得到404。但是,如果将静态文件夹放在/ home / pi / mysite / mysite /中,则静态目录为/ home / pi / mysite / mysite / static,这是代码可以正常工作,我可以查看txt文件。
我对设置感到困惑,我认为我在根目录中的设置中设置了静态目录,但没有在“ mysite / mysite”中设置。为什么真正的行为是相反的?这里有什么问题?谢谢!
答案 0 :(得分:2)
您应该在开发期间为他们提供服务。选中此part。
编辑主urls.py
(您将在与settings.py
的文件夹中找到它)。
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
答案 1 :(得分:0)
python manage.py collectstatic
。
这会将静态文件放置在STATIC_URL的位置例如Nginx conf文件:
location /static/ {
root /django_path/static/;
}