Django collectstati c: возможно ли получить доступ к файлам stati c, которые находятся за пределами Django Project? - PullRequest
0 голосов
/ 04 февраля 2020

Я пытаюсь получить доступ к файлам stati c из моего приложения django к файлам stati c, которые находятся за пределами моего приложения django. Я хочу скопировать или получить доступ к файлам в UIUX / stati c в DjangoRepo / myapp / stati c. это выглядит так:

UIUX/
 - static
  - staticfile...
 - templates
  - index.html
DjangoRepo/
 - myapp
  - static
  - templates

мой файл настроек

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

STATIC_URL = '/static/'

# trying to access the static file outside of django file 
STATICFILES_DIRS = (
    #os.path.join(PROJECT_ROOT, 'static/'),
    "C:/Users/kevin/workspace/UIUX/static"
)

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

, когда я запускаю python manage.py collectstatic Я получаю это

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:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\core\management\__init__.py", line 381, in execute_from_command_line
    utility.execute()
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\core\management\__init__.py", line 375, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\core\management\base.py", line 323, in run_from_argv
    self.execute(*args, **cmd_options)
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\core\management\base.py", line 364, in execute
    output = self.handle(*args, **options)
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 188, in handle
    collected = self.collect()
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\contrib\staticfiles\management\commands\collectstatic.py", line 105, in collect
    for path, storage in finder.list(self.ignore_patterns):
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\contrib\staticfiles\finders.py", line 131, in list
    for path in utils.get_files(storage, ignore_patterns):
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\contrib\staticfiles\utils.py", line 23, in get_files
    directories, files = storage.listdir(location)
  File "C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site-packages\django\core\files\storage.py", line 315, in listdir
    for entry in os.scandir(path):
FileNotFoundError: [WinError 3] 指定されたパスが見つかりません。: 'C:\\Users\\kevin\\workspace\\lynx-ocr-python-services-6157\\C'

, возможно ли получить доступ к stati c файлы, которые находятся за пределами проекта?

1 Ответ

0 голосов
/ 04 февраля 2020

возможно ли получить доступ к файлам stati c, которые находятся за пределами Django Project?

Да! Возможно, вы захотите прочитать о STATICFILES_DIRS из официальной документации Django.


Изучите следующий код:

my_str = (
    'My Str'
)
print(type(my_str))    # Prints: <class 'str'>

my_typle = (
    'My Tuple',
)
print(type(my_typle))    # Prints: <class 'tuple'>


STATICFILES_DIRS должен быть list (или tuple), а не str.

Итак, попробуйте изменить:

STATICFILES_DIRS = (
    #os.path.join(PROJECT_ROOT, 'static/'),
    "C:/Users/kevin/workspace/UIUX/static"
)

На:

STATICFILES_DIRS = (
    #os.path.join(PROJECT_ROOT, 'static/'),
    "C:/Users/kevin/workspace/UIUX/static",    # Note the , at the end.
)
...