【问题标题】:Django not updating static location settingDjango不更新静态位置设置
【发布时间】:2016-10-15 20:23:33
【问题描述】:

我有一个项目运行了大约 6 个月。静态文件一直运行良好,一切都很好。我的static 文件位于一个文件夹中,如下所示:

/var/www/html/static/

在我的settings.py 文件中,我的静态部分设置如下:

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

这一直工作得很好。

但是,我现在想将 static 文件夹移动到其他位置。具体来说,我想将它移动到主项目目录中。我的项目位于/var/www/html/shq/,所以我希望我的static 目录位于/var/www/html/shq/static/。我移动了文件夹,然后将我的 settings.py 文件更新为如下所示:

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

但是,它没有用。 Django 项目仍在引用旧位置。

我在这里缺少什么?为什么 Django 项目不使用/var/www/html/shq/static/ 的新位置?

编辑

这是我的settings.py 文件尾部的样子:

119 STATICFILES_FINDERS = [
120   'django.contrib.staticfiles.finders.FileSystemFinder',
121   'django.contrib.staticfiles.finders.AppDirectoriesFinder',
122 ]
123
124 STATIC_URL = '/static/'
125 STATIC_ROOT = '/var/www/html/collected_static/'
126 MEDIA_URL = '/media/'
127 MEDIA_ROOT = '/var/www/html/shq/media/'
128 STATICFILES_DIRS = [
129     os.path.join(BASE_DIR, "static"),
130     '/var/www/html/shq/static/',
131     ]

【问题讨论】:

    标签: django django-staticfiles django-static


    【解决方案1】:

    你可以尝试做这样的事情。我认为它返回 django 查找静态文件的目录列表。可能有助于调试。

    from django.contrib.staticfiles import finders
    from pprint import pprint
    pprint(finders.find("", all=True))
    

    另外,我可能不完全了解您的情况,但您可能会确认 STATIC_ROOT 设置为您要提供静态文件的位置(您的网络服务器将提供文件的位置)。 STATIC_DIRS 设置告诉 collectstatic 在哪里可以找到静态文件,但 STATIC_ROOT 是 collectstatic 实际放置文件的位置。

    【讨论】:

    • STATIC_ROOT 设置为单独的目录,以便将静态文件存储在那里用于生产(以及当DEBUG=False 时)。我输入了您发布到python 编辑器的那个脚本,但它抱怨STATICFILES_FINDERS 没有设置,即使它是(我列出了两个查找器)。不知道为什么这总是如此令人沮丧的挑战。 -- 编辑 -- 我还更新了帖子以显示更多我的settings.py 文件
    【解决方案2】:

    我想通了。毫不奇怪,一旦我弄清楚了,这很容易解决。

    它与我的 Django 设置无关,而与 Apache 完全有关。

    原创

    Alias /static/ /var/www/html/static/
    

    所以无论我在我的 Django settings.py 文件中做了什么,Apache 都会覆盖它以将请求的 /static/ 发送到错误的目录。

    新的 Apache 设置

    Alias /static/ /var/www/html/shq/static/
    

    现在正在引用正确的静态文件。希望这对将来的其他人有所帮助:)

    【讨论】:

      猜你喜欢
      • 2014-06-30
      • 2012-10-07
      • 1970-01-01
      • 2022-01-24
      • 2011-01-21
      • 2014-06-02
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多