python - 在 collectstatic 命令后我得到了 django.core.exceptions.SuspiciousFileOperation
问题描述
我想在 Heroku 上部署我的 django 项目。当我尝试使用收集静态信息时,python manage.py collectstatic
我得到了这个 Traceback:
(venvecosite) (base) cristian@FInch:~/Desktop/GreatEcology my project/ecosite/ecowebsite$ python manage.py collectstatic
You have requested to collect static files at the destination
location as specified in your settings:
/home/cristian/Desktop/GreatEcology my project/ecosite/ecowebsite/staticfiles
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/core/management/__init__.py", line 419, in execute_from_command_line
utility.execute()
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/core/management/__init__.py", line 413, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/core/management/base.py", line 354, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/core/management/base.py", line 398, in execute
output = self.handle(*args, **options)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 187, in handle
collected = self.collect()
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/management/commands/collectstatic.py", line 128, in collect
for original_path, processed_path, processed in processor:
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/whitenoise/storage.py", line 148, in post_process_with_compression
for name, hashed_name, processed in files:
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/whitenoise/storage.py", line 88, in post_process
for name, hashed_name, processed in files:
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 399, in post_process
yield from super().post_process(*args, **kwargs)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 231, in post_process
for name, hashed_name, processed, _ in self._post_process(paths, adjustable_paths, hashed_files):
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 288, in _post_process
content = pattern.sub(converter, content)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 187, in converter
hashed_url = self._url(
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 126, in _url
hashed_name = hashed_name_func(*args)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 338, in _stored_name
cache_name = self.clean_name(self.hashed_name(name))
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/whitenoise/storage.py", line 166, in hashed_name
name = super(CompressedManifestStaticFilesStorage, self).hashed_name(
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 87, in hashed_name
if not self.exists(filename):
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/core/files/storage.py", line 318, in exists
return os.path.exists(self.path(name))
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/contrib/staticfiles/storage.py", line 41, in path
return super().path(name)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/core/files/storage.py", line 331, in path
return safe_join(self.location, name)
File "/home/cristian/Desktop/GreatEcology my project/ecosite/venvecosite/lib/python3.8/site-packages/django/utils/_os.py", line 29, in safe_join
raise SuspiciousFileOperation(
django.core.exceptions.SuspiciousFileOperation: The joined path (/home/cristian/Desktop/GreatEcology my project/ecosite/ecowebsite/static/img/cockatoo-61194_1920.jpg) is located outside of the base path component (/home/cristian/Desktop/GreatEcology my project/ecosite/ecowebsite/staticfiles)
这是我的 settings.py
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
#STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'staticfiles'),]
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
问题是什么?
解决方案
推荐阅读
- javascript - 如何重置文件输入的值?
- sql - 如何在Sql server 的列中获取单个值的最大大小?
- latex - 用于报告统计信息的 LaTeX \newcommand 可用吗?
- c - 算法未进入 if 条件(Sherlock 和有效字符串)
- java - 我可以将 CXF 与 Tomcat 10 一起使用吗?
- javascript - 获取nodejs中字符串内特定标签的值
- android - 如何使屏幕变为全屏android
- python - 抓取网站时重复的结果
- angularjs - 在调用函数之前阻止检查复选框
- azure - 如何将现有用户作为所有者分配给 Azure Powershell 中新创建的 AD 组?