【问题标题】:What is the correct settings for static files in djangodjango中静态文件的正确设置是什么
【发布时间】:2021-07-22 04:57:36
【问题描述】:

我刚开始使用 django,对静态文件感到困惑。根据这篇文章correct static files setting 我知道STATIC_URL 就像名字一样。 STATICFILES_DIRS 是 django 查找静态文件的地方,STATIC_ROOT 是收集静态文件的地方。对于我的项目,我有以下文件 sys

rest
   |__ rest
           |__ settings.py
       pages
       static
             |__admin
             |__images
             |__vendor
                     |__bootstrap
                     
       templates
       manage.py

我决定在拥有我的文件夹而不是每个应用程序时采用基于项目的方法。有些东西不适用于我拥有的网站登录页面,我看到我需要collectstatic,所以我做到了,但我将路径设置为我已经存在的static 文件,起初并没有让我这样做,但不知何故结束了在职的。我的static 文件夹突然出现了管理员,我认为它来自 django 附带的管理应用程序,我的项目终于开始正常工作,这是令人困惑的部分。我决定关注该帖子并在我的设置中包含以下内容

STATIC_URL = '/static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles/')

现在我有一个staticfiles 文件夹和我的static 文件夹。同样在staticfiles 文件夹中,我拥有static 文件夹中的所有内容,这似乎不正确,想知道如何解决这个问题。我很困惑,有点担心我会再次破坏一切,所以提供的任何知识都会有所帮助。

【问题讨论】:

    标签: django


    【解决方案1】:

    我用过这样的,它工作正常:

    STATIC_URL = '/static/'
    STATICFILES_DIRS =[os.path.join(BASE_DIR, 'static')]
    STATIC_ROOT = os.path.join(BASE_DIR, 'assets')
    
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
    

    并用于在主项目urls.py而不是应用内urls.py中实现代码

    urlpatterns += static(settings.STATIC_URL, documents_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, documents_root=settings.MEDIA_ROOT)
    

    【讨论】:

    • 媒体文件夹是必须的吗?我将所有图像都放在图像文件夹下的静态文件中
    • 媒体文件夹用于接收文件,例如用户个人资料图片@Alexander 的文件上传
    • 我明白了,我还没有这样做,因为我将使用 MySQL 进行更多研究。我想知道的是,在我的情况下,将 STATIC_ROOT 运行到两个不同的文件夹后是否会有任何问题,首先是静态文件夹,然后是另一个名为 staticfiles 的文件夹。为什么我都需要它们?
    猜你喜欢
    • 2013-03-20
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-06-02
    • 2016-02-01
    • 1970-01-01
    • 2013-12-26
    • 2014-10-02
    相关资源
    最近更新 更多