【问题标题】:Using static folding inside app folding Django在应用程序折叠 Django 中使用静态折叠
【发布时间】:2019-04-01 09:16:36
【问题描述】:

我的应用程序文件夹中有一个静态目录。我将这行代码添加到我的项目 settings.py 文件中

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

文件继续导致 404 未找到。我被卡住了,我该怎么办?

【问题讨论】:

    标签: django python-3.x django-staticfiles django-static


    【解决方案1】:

    这可能不是您的静态文件设置错误。但是要确保应用目录中static文件夹的相关设置是STATICFILES_FINDERShttps://docs.djangoproject.com/en/2.1/ref/settings/#staticfiles-finders。但是AppDirectoriesFinder应该默认存在所以它可能没问题。

    您的问题可能出在您的 URL 方案中:

    出于开发目的,请确保在已安装的应用中包含 django.contrib.staticfilesDEBUG = TrueSTATIC_URL = '/static/'(或类似名称)。然后你应该可以访问这些文件了。

    部署它更复杂,但基本上你已经设置了STATIC_ROOT,在启动服务器之前运行python manage.py collectstatic 命令,它将所有静态文件复制到一个位置,然后设置你的服务器(Nginx)以提供来自该位置的文件/static/ URL 下的文件夹。这里是官方文档https://docs.djangoproject.com/en/2.1/howto/static-files/#deployment

    注意:如果您的应用是foo,并且您在static 目录下的foo 应用中有bar 文件,则该文件的URL 将为/static/foo/bar

    【讨论】:

    • 我想我误导了你。静态文件不在特定应用程序的文件夹中。它与其他应用程序位于文件夹内。有可能还是应该将我的 css 文件保留在一个应用程序中,只从该应用程序的静态文件中引用 css?
    • 哦,那么请确保添加 os.path.join(BASE_DIR, "apps", "static"),如果它位于您的应用程序文件夹中(假设 BASE_DIR 指向项目的根目录)。
    • 这感觉像是正确的答案,但它似乎不起作用。
    • 您是否按照我在主要答案中所写的内容设置并检查了所有内容?它仍然是相关的:)
    • 让我们往下看:django.contrib.staticfiles 已安装,STATIC_URL 是 /static/,但我不知道 STATICFILES_FINDERS 是什么。
    猜你喜欢
    • 1970-01-01
    • 2013-03-10
    • 2016-12-14
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 2021-09-13
    相关资源
    最近更新 更多