【问题标题】:django.core.exceptions.SuspiciousFileOperation: The joined path is located outside of the base path componentdjango.core.exceptions.SuspiciousFileOperation:连接路径位于基本路径组件之外
【发布时间】:2019-04-14 05:42:03
【问题描述】:

这在以前做 django 网站时都很好用,但这次它给了我一个错误。

Settings.py

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

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

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

我的目录 Portfolio-Project/Portfolio/static/profile.jpg 中有一个 profile.jpg。它应该从这里收集静态文件并将静态文件粘贴到我的代码中提到的 Portfolio-project/static 中。但它给了我一些错误。

使用命令“Python manage.py collectstatic”后出错

django.core.exceptions.SuspiciousFileOperation: The joined path 
(C:\Users\Kiran\Desktop\portfolio-project\portfolio\static\Profile.jpg) is 
located outside of the base path component 
(C:\Users\Kiran\Desktop\portfolio- project\portfolio\static\)

请帮忙。 谢谢

【问题讨论】:

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


    【解决方案1】:

    在你的行中:

    os.path.join(BASE_DIR, 'portfolio/static/')
    

    删除最后一个斜杠:

     os.path.join(BASE_DIR, 'portfolio/static')
    

    无论如何,这是理想的:

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

    【讨论】:

    • 您为什么不在理想场景中包含STATIC_ROOT
    【解决方案2】:

    我最近遇到了这个错误,但实际上很简单:

    您可能下载了模板,解决方案如下: 首先,您必须检查您的 css 文件中是否有相关链接等内容

    例如,您的 CSS 可能引用了 django 项目本身之外的文件。

    例如backround:url('...\image\Profile.jpg') 这实际上对我有用

    注意:
    关键事实是首先检查您的 CSS 或(可能是 js)文件,如果它是您未使用的引用文件或引用不在 django 项目目录中的文件的文件。

    【讨论】:

      猜你喜欢
      • 2019-12-03
      • 1970-01-01
      • 2019-07-08
      • 2021-02-01
      • 1970-01-01
      • 2016-02-11
      • 2014-09-07
      • 2022-07-14
      • 2016-09-11
      相关资源
      最近更新 更多