django.core.exceptions.SuspiciousFileOperation:联接路径位于基本路径组件的外部

时间:2018-11-11 06:08:07

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

每次使用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\)

请帮助。 谢谢

2 个答案:

答案 0 :(得分:3)

在您的行中:

}
@media (min-width: 1350px) and (max-width: 1920px){

删除最后一个斜杠:

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

无论如何,这是理想的选择:

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

答案 1 :(得分:0)

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

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

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

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

注意:
关键是首先检查你的 CSS 或(可能是 js)文件,如果它是一个你没有使用的引用文件,或者文件所引用的东西不在你的 django 项目目录中。