我在djangocean上部署了django项目。虽然该项目可以在我的开发机上正常运行,但在服务器上运行,但它不会显示静态文件。
我对静态文件的设置是
STATIC_URL = '/static/'
STATIC_ROOT='/home/gagan_sapora/myprojectdir/saporawebapp/static/'
为进行故障排除,我运行collectstatic命令,但显示权限被拒绝错误。
编辑1:- 相应的错误是;- Check error here 我尝试更改其所有权,但可以打印
No Such file or directory
我的项目的文件结构是
Project
|-Project
|-app
|-static
|-fonts
|-images
|-js
|-styles
|-manage.py
编辑2:-
我的settings.py文件是
STATIC_URL = '/static/'
STATIC_ROOT='../static/'
MEDIA_URL='/media/'
MEDIA_ROOT=os.path.join(BASE_DIR,'media')
答案 0 :(得分:0)
这里至少有2个独立问题。
当DEBUG=True
时,Django会自己提供静态文件-它不会通过collectstatic / STATIC_ROOT路径[0]进行传递。因此,它找不到smally.jpg的事实表明该文件不在服务器上。您可以再次检查文件在DigitalOcean服务器上是否确实存在吗?
运行collectstatic
时出现此权限错误是另一个问题,很可能与STATIC_ROOT
中指定的目录的所有者有关。用ls -l
检查哪个用户拥有该目录,如果不是运行Django项目的用户(通常是www-data
),则需要执行sudo chown -R www-data:www-data /path/to/static/root
。>
[0] https://docs.djangoproject.com/en/2.2/howto/static-files/#serving-static-files-during-development
答案 1 :(得分:0)
浏览可能的错误和与@rsmoji的简短讨论之后,这是一个权限问题,因为我以sudo用户的身份执行命令,因此我需要使用来更改文件夹的权限,
sudo chmod 777 static
它将解决问题。希望将来对某人有帮助