본문 바로가기

Python_WEB/Django

[Django]collectstatic 사용시 STATIC_ROOT 에러 발생 해결 방안

장고 인강 듣던중 정적 파일(static file)에 관하여 나왔다.

장고에서 정적 파일(static file)을 모을때 사용하는 명령어는 아래와 같다.

 

python manage.py collectstatic

 

하지만 위에 명령어를 입력해서 정적파일을 모으려고 하는데 아래와 같은 오류가 발생했다.

 

You have requested to collect static files at the destination
location as specified in your settings.

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 21, in <module>
    main()
  File "manage.py", line 17, in main
    execute_from_command_line(sys.argv)
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\core\management\__init__.py", line 401, in execute_from_command_line
    utility.execute()
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\core\management\__init__.py", line 395, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\core\management\base.py", line 328, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\core\management\base.py", line 369, in execute
    output = self.handle(*args, **options)
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 187, in handle
    collected = self.collect()
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 113, in collect
    handler(path, prefixed_path, storage)
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 338, in copy_file
    if not self.delete_file(path, prefixed_path, source_storage):
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 248, in delete_file
    if self.storage.exists(prefixed_path):
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\core\files\storage.py", line 311, in exists
    return os.path.exists(self.path(name))
  File "C:\Fastcampus_Django_Project_Backoffice\venv\lib\site-packages\django\contrib\staticfiles\storage.py", line 43, in path
    raise ImproperlyConfigured("You're using the staticfiles app "
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the STATIC_ROOT setting to a filesystem path.

 

위와 같은 오류는 static를 지정하지 않아서 그런경우였다.

 

이를 해결하는 방법은 아래와 같다.

 

settings.py에 가서

 

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

 

위와 같이 적용후에 다시 명령어를 입력해주면

 

python manage.py collectstatic

 

아래와 같이 정상적으로 수집하는 경우를 볼 수 있다.

 

Found another file with the destination path 'admin\js\actions.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\actions.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\autocomplete.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\calendar.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\cancel.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\change_form.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\collapse.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\collapse.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\core.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\inlines.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\inlines.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\jquery.init.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\popup_response.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\prepopulate.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\prepopulate.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.        
Found another file with the destination path 'admin\js\prepopulate_init.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.       
Found another file with the destination path 'admin\js\SelectBox.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\SelectFilter2.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\urlify.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\admin\DateTimeShortcuts.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.Found another file with the destination path 'admin\js\admin\RelatedObjectLookups.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\jquery\jquery.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.   
Found another file with the destination path 'admin\js\vendor\jquery\jquery.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\jquery\LICENSE.txt'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\LICENSE.md'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\select2.full.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\select2.full.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\af.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\ar.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\az.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\bg.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\bn.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\bs.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ca.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\cs.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\da.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\de.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\dsb.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.Found another file with the destination path 'admin\js\vendor\select2\i18n\el.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\en.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\es.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\et.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\eu.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\fa.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\fi.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\fr.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\gl.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\he.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\hi.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\hr.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\hsb.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.Found another file with the destination path 'admin\js\vendor\select2\i18n\hu.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\hy.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\id.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\is.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\it.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ja.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ka.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\km.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ko.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\lt.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\lv.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\mk.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ms.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\nb.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ne.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\nl.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\pl.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ps.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\pt-BR.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\pt.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\ro.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\ru.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\sk.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\sl.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\sq.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\sr-Cyrl.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\sr.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\sv.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\th.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\tk.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\tr.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\uk.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\vi.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\select2\i18n\zh-CN.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\select2\i18n\zh-TW.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.
Found another file with the destination path 'admin\js\vendor\xregexp\LICENSE.txt'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.Found another file with the destination path 'admin\js\vendor\xregexp\xregexp.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path. 
Found another file with the destination path 'admin\js\vendor\xregexp\xregexp.min.js'. It will be ignored since only the first encountered file is collected. If this is not what you want, make sure every static file has a unique path.

691 static files copied to 'C:\Fastcampus_Django_Project_Backoffice\static'.