django静态文件不工作

cpjpxq1n  于 2023-08-08  发布在  Go
关注(0)|答案(7)|浏览(144)

出于某种原因,django没有提供我的静态文件。
我已经看了一堆修复这个问题,但我仍然没有找到解决方案。
以下是我的配置:
urls.py

  1. urlpatterns = patterns('',
  2. (r'^$', index),
  3. (r'^ajax/$', ajax),
  4. (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__), 'static')}),
  5. )

字符串
settings.py

  1. STATIC_ROOT = '/home/aurora/Code/django/test/static/'
  2. STATIC_URL = '/static/'
  3. INSTALLED_APPS = (
  4. 'django.contrib.auth',
  5. 'django.contrib.contenttypes',
  6. 'django.contrib.sessions',
  7. 'django.contrib.sites',
  8. 'django.contrib.messages',
  9. 'django.contrib.staticfiles',
  10. # Uncomment the next line to enable the admin:
  11. # 'django.contrib.admin',
  12. # Uncomment the next line to enable admin documentation:
  13. # 'django.contrib.admindocs',
  14. )


导航到http://localhost:8000/static/css/default.css
我得到这个错误:'css/default.css' could not be found
导航到http://localhost:8000/static/
我得到这个错误:Directory indexes are not allowed here.
看起来静态目录被Map出来了,但是子目录没有。

eni9jsuy

eni9jsuy1#

开发中:

  • STATICFILES_DIRS应具有所有静态文件所在的所有静态目录
  • STATIC_URL应该是/static/,如果你的文件在本地机器上,否则把基本URL放在这里,例如。“网址:http://example.com/“
  • INSTALLED_APPS应包括'django.contrib.staticfiles'

在模板中,加载staticfiles模块:

  1. {% load staticfiles %}
  2. ..
  3. ..
  4. <img src='{% static "images/test.png" %}' alt='img' />

字符串

生产中:

  • 添加STATIC_ROOT,Django使用它来收集来自STATICFILES_DIRS的所有静态文件
  • 收集静态文件
  1. python manage.py collectstatic [--noinput]

  • 将路径添加到urls.py
  1. from . import settings
  2. ..
  3. ..
  4. urlpatterns = patterns('',
  5. ..
  6. url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root':settings.STATIC_ROOT)}),)`


以下列出了更详细的文章:
http://blog.xjtian.com/post/52685286308/serving-static-files-in-django-more-complicated
http://agiliq.com/blog/2013/03/serving-static-files-in-django/

展开查看全部
a0zr77ik

a0zr77ik2#

试着运行python manage.py collectstatic,看看静态文件是在哪里收集的。
将其添加到您的urls.py并在settings.py中设置DEBUG=True

  1. if settings.DEBUG:
  2. urlpatterns += patterns('',
  3. (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT, 'show_indexes':True}),
  4. )
  5. urlpatterns += patterns('',
  6. (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}),
  7. )

字符串

wmtdaxz3

wmtdaxz33#

我不认为你需要你的静态路径在urls.py,删除它,它应该工作。
目前是这样的

  1. urlpatterns = patterns('',
  2. (r'^$', index),
  3. (r'^ajax/$', ajax),
  4. (r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': path.join(path.dirname(__file__), 'static')}),
  5. )

字符串
只需删除r'^static行

  1. urlpatterns = patterns('',
  2. (r'^$', index),
  3. (r'^ajax/$', ajax),
  4. )


至少在Django1.3和更高版本中是这样的

展开查看全部
uurv41yg

uurv41yg4#

您可以执行这样的设置,如
1.在settings.py中添加静态目录路径

  1. STATICFILES_DIRS = [
  2. BASE_DIR / "static"
  3. ]

字符串
参考:https://docs.djangoproject.com/en/3.1/howto/static-files/
1.在urls.py中添加一行代码

  1. urlpatterns += staticfiles_urlpatterns()

3htmauhk

3htmauhk5#

  1. STATIC_URL = '/static/'
  2. STATIC_ROOT = os.path.join(BASE_DIR, "static/")

字符串

wswtfjt7

wswtfjt76#

我正在使用以下设置:(2021年4月)

  • macos大肯定
  • vscode
  • Ananconda 3(环境)

当我尝试使用http://localhost:8000/static/test.txt访问Django中的静态文件时,如果静态文件夹中存在test.txt文件。
1.打开主项目文件夹中的setting.py文件,然后
1.最后将此代码粘贴到settings.py中:

  1. STATIC_URL = '/static/'
  2. # Added Manually
  3. STATICFILES_DIRS = [
  4. BASE_DIR / "static",
  5. ]

字符串
然后重新启动VS Code。

展开查看全部
hmtdttj4

hmtdttj47#

这里的主目录名是mysite,应用程序名是polls(polling_app project Django tutorial)。
1.在主文件夹(mysite)中创建一个静态文件夹。
1.我们可以在静态文件夹中添加静态文件(如JavaScript,imagefile,css等)。
1.在创建静态文件夹后,我们必须通过在settings.py中添加下面的行来通知Django(在STATIC_URL = '/static/'行下面)

  1. STATIC_ROOT = os.path.join(BASE_DIR,'static')

现在告诉django查看你添加的静态文件。#在settings.py文件顶部添加导入操作系统

  1. STATICFILES_DIRS = [
    os.path.join(BASE_DIR,'mysite/static/')
    ]

在terminal中运行此命令以收集项目中的所有静态文件。

  1. python manage.py collectstatic

运行服务器,如果需要,添加端口名。

  1. python manage.py runserver portname
展开查看全部

相关问题