Collectstatic - 权限被拒绝,pythonanywhere bash 终端

问题描述 投票:0回答:2

我正在尝试在 pythonanywhere 的 bash 终端中使用

collectstatic
命令:

python manage.py collectstatic

但我明白:

权限错误:[Errno 13]权限被拒绝:'/static'

请问有人可以帮忙吗?我已经尝试解决这个问题两天了。

这是完整的错误:

nomadpad-virtualenv) 11:51 ~/nomadpad (master)$ python manage.pycollectstatic 复制'/home/DMells123/.virtualenvs/nomadpad-virtualenv/lib/python3.6/site-packages/djang o/contrib/admin /static/admin/img/inline-delete.svg' 回溯(最近一次调用):文件“manage.py”,第 22 行,在execute_from_command_line(sys.argv) 文件“/home/DMells123/.virtualenvs/nomadpad- virtualenv/lib/python3.6/site-packages/django /core/management/init.py”,第 364 行,在execute_from_command_line utility.execute() 文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv/lib/python3 .6/site-packages/django /core/management/init.py”,第356行,在执行self.fetch_command(subcommand).run_from_argv(self.argv)文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv/ lib/python3.6/site-packages/django /core/management/base.py”,第 283 行,在 run_from_argv self.execute(*args, cmd_options) 文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv/lib /python3.6/site-packages/django /core/management/base.py”,第 330 行,执行输出 = self.handle(*args, options) 文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv/ lib/python3.6/site-packages/django /contrib/staticfiles/management/commands/collectstatic.py”,第 199 行,在句柄collected = self.collect() 文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv 中/lib/python3.6/site-packages/django /contrib/staticfiles/management/commands/collectstatic.py”,第 124 行,在收集处理程序(路径,prefixed_path,存储)文件“/home/DMells123/.virtualenvs/nomadpad -virtualenv/lib/python3.6/site-packages/django /contrib/staticfiles/management/commands/collectstatic.py”,第 364 行,在 copy_file self.storage.save(prefixed_path, source_file) 文件“/home/DMells123/ .virtualenvs/nomadpad-virtualenv/lib/python3.6/site-packages/django /core/files/storage.py”,第 54 行,在保存中返回 self._save(name, content) 文件“/home/DMells123/. virtualenvs/nomadpad-virtualenv/lib/python3.6/site-packages/django /core/files/storage.py”,第 321 行,在 _save os.makedirs(directory) 文件“/home/DMells123/.virtualenvs/nomadpad- virtualenv/lib/python3.6/os.py”,第 210 行,在 makedirs makedirs(head, mode, exit_ok) 文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv/lib/python3.6/os.py”中,第 210 行,在 makedirs makedirs(head, mode, exit_ok) 文件“/home/DMells123/.virtualenvs/nomadpad-virtualenv/lib/python3.6/os.py”,第 220 行,在 makedirs mkdir(name, mode) 中PermissionError: [Errno 13] 权限被拒绝: '/static'

静态设置

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
STATIC_DIR = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [STATIC_DIR, ]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
MEDIA_DIR = os.path.join(BASE_DIR, 'posts/media')
MEDIA_ROOT = MEDIA_DIR
MEDIA_URL = '/media/'
python django virtualenv pythonanywhere
2个回答
6
投票

我错过了一点

STATIC_ROOT
,应该是
posts/static


0
投票

我也有同样的问题,但如果你有:

STATIC_URL = '/static/'

它尝试在根“/”路径中创建一个新的“静态”目录。

我将其更改为:

STATIC_URL = 'static/'

此外,在 Django 文档 中也有相关内容。

© www.soinside.com 2019 - 2024. All rights reserved.