Python Django collectstatic:是否可以访问Django项目之外的静态文件?
我正在尝试从django应用程序访问静态文件,以访问django应用程序之外的静态文件。 我想将UIUX/static中的文件复制或访问到DjangoRepo/myapp/static。 它看起来像下面Python Django collectstatic:是否可以访问Django项目之外的静态文件?,python,django,django-templates,Python,Django,Django Templates,我正在尝试从django应用程序访问静态文件,以访问django应用程序之外的静态文件。 我想将UIUX/static中的文件复制或访问到DjangoRepo/myapp/static。 它看起来像下面 UIUX/ - static - staticfile... - templates - index.html DjangoRepo/ - myapp - static - templates 我的设置文件 STATIC_ROOT = os.path.join(BASE_
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'
键入“是”继续,或键入“否”取消:是
回溯(最近一次呼叫最后一次):
文件“manage.py”,第21行,在
main()
文件“manage.py”,第17行,主
从命令行(sys.argv)执行命令
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\core\management\\ uu init\uuuuuuuuuuu.py”,第381行,从命令行执行
utility.execute()
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\core\management\\uuuu init\uuuu.py”,第375行,执行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\core\management\base.py”,第323行,运行于\u argv
self.execute(*args,**cmd_选项)
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\core\management\base.py”,第364行,执行
输出=self.handle(*args,**选项)
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\contrib\staticfiles\management\commands\collectstatic.py”,第188行,位于句柄中
collected=self.collect()
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\contrib\staticfiles\management\commands\collectstatic.py”,第105行,在collect中
对于路径,存储在finder.list(self.ignore_模式)中:
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\contrib\staticfiles\finders.py”,列表第131行
对于utils.get\u文件中的路径(存储,忽略\u模式):
get\U文件第23行的文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\contrib\staticfiles\utils.py”
目录,文件=storage.listdir(位置)
文件“C:\Users\iact80h\.virtualenvs\lynx-ocr-python-services-6157-7DFxjqs2\lib\site packages\django\core\files\storage.py”,第315行,在listdir中
对于os.scandir中的条目(路径):
FileNotFoundError:[WinError 3]指定されたパスが見つかりません。: 'C:\\Users\\kevin\\workspace\\lynx-ocr-python-services-6157\\C'
甚至可以访问项目外部的静态文件吗
可以访问Django项目之外的静态文件吗
对!!您可能需要阅读Django的官方文档
研究以下代码:
my_str = (
'My Str'
)
print(type(my_str)) # Prints: <class 'str'>
my_typle = (
'My Tuple',
)
print(type(my_typle)) # Prints: <class 'tuple'>
致:
这回答了你的问题吗?如果你不介意,我可以再问一个问题吗?另一个问题是,我可以直接访问UIUX/静态/而不复制它吗?理想情况下,您应该问一个单独的问题。这样对社区会有帮助。
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.
)