【问题标题】:Why is collectstatic not copying all my directories?为什么 collectstatic 不复制我的所有目录?
【发布时间】:2020-06-08 05:23:55
【问题描述】:

目前正在为我的 django 网站进行部署。我试图让我的静态文件正常工作,所以很明显我使用了这个命令:python manage.py collectstatic。运行完成后,它会打印出119 files copied...,我认为这可以正常工作,直到我进入新创建的static 目录并且没有找到我的css 文件夹。奇怪的是,我确实看到了admin 文件夹。看到这个,我完全删除了我的static 文件夹,并尝试使用scp 直接复制静态文件夹。我这样做了,我的所有其他文件夹(css、上传等,还有 admin 文件夹)都出现了。我现在尝试collectstatic,所有文件夹都在那里,只是在我这样做时才知道,它会删除我的所有文件夹,除了admin 文件夹。当我使用 runserver 命令启动网站时。我的主页上没有css,但管理页面中有。

这就是查找器中所有内容的样子。

(projectname) ——— env
              ——— excelsite
              ——— pages
              ——— templates
              ——— (settings folder)
              ——— static ——— css, uploads, admin
              ——— manage.py
              ——— db.sqlite3

这是我的settings.py

STATIC_ROOT = "/home/alexholst/excelsite/static"
STATIC_URL = '/static/'

#STATICFILES_DIRS = ("/home/alexholst/excelsite/static",)

#STATICFILES_DIRS = (
#    os.path.join('static'),
#    'static',
#)

非常感谢任何帮助!

提前致谢!

【问题讨论】:

    标签: python django server collectstatic


    【解决方案1】:

    需要在settings.py中配置

    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static"),
        '/var/www/static/',
    ]
    

    并在那里添加您应用的静态目录。

    https://docs.djangoproject.com/en/3.0/howto/static-files/

    【讨论】:

    • 应该,是的......它只是告诉 Django 在运行 collectstatic 时在哪里可以找到你的文件
    • 你仍然需要运行collectstatic,但这次它应该收集所有内容:)
    • 它说我需要 STATIC_ROOT 之类的东西
    • hmmm,当我放入静态根目录时,它说 staticfilesdirs 不能有与静态根目录相同的代码
    • 如果您将项目树结构添加到您的问题中,也许我可以更具体。
    猜你喜欢
    • 2013-01-06
    • 2017-03-09
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2016-05-08
    • 2011-06-25
    相关资源
    最近更新 更多