【问题标题】:trouble in django staticfilesdjango静态文件中的问题
【发布时间】:2018-10-21 18:31:58
【问题描述】:

我在提供静态文件时遇到问题。使用 django 2.0

这是设置文件,

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

STATIC_URL = '/static/'

我运行 collectstatic,然后将每个静态文件复制到 STATIC_ROOT 文件夹中。

问题是正在提供管理静态文件和休息框架,但不是我添加的那些。

(env) luvpreet@nfs:~/myntracms/myntracms$ python manage.py shell
Python 3.6.5 (default, Mar 29 2018, 03:28:50) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from django.conf import settings
>>> settings.BASE_DIR
'/home/luvpreet/myntracms/myntracms/myntracms'

看到这个,

luvpreet@nfs:~/myntracms/myntracms/static$ pwd
/home/luvpreet/myntracms/myntracms/static

luvpreet@nfs:~/myntracms/myntracms/static$ ls
admin  debug_toolbar  djcelery  images  js  rest_framework

luvpreet@nfs:~/myntracms/myntracms/static$ 

管理静态文件工作,

但是我的文件没有被提供,

即使我将文件粘贴到管理文件夹中,它们仍然没有被提供。

luvpreet@nfs:~/myntracms/myntracms/static/admin/js$ ls | grep home
home.png

不过,

【问题讨论】:

  • 您是否在开发模式下运行(即python manage.py runserver)。如果是,您需要在您的urls.py 中包含urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
  • 你是用 nginx 还是 apache2 设置的?

标签: django static


【解决方案1】:

您已设置STATIC_ROOT(收集静态文件的位置),但尚未设置STATICFILES_DIRS(收集静态文件的位置)。

看起来像你想要的

STATICFILES_DIRS = [os.path.join(os.path.dirname(BASE_DIR),'static')]

然后您应该将STATIC_ROOT 更改为不同的目录(通常在您的 Django 项目之外)。您还可以删除已收集到~/myntracms/myntracms/static/ 的目录(例如admindjango-debug-toolbar)。

【讨论】:

    猜你喜欢
    • 2011-06-11
    • 2020-11-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 2013-11-22
    • 2016-11-13
    • 2018-09-10
    • 1970-01-01
    相关资源
    最近更新 更多