如何解决Django:为什么在我的setttings.py和urls.py中需要这些
我正在观看有关制作视频订阅网站的在线教程,这些代码应该以某种方式出现在我的settings.py中:
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static_root'),]
VENV_PATH = os.path.dirname(BASE_DIR)
STATIC_ROOT = os.path.join(BASE_DIR,'static/')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(VENV_PATH,'media_root')
在我的urls.py中,这些代码也会出现...
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
我是django和python的初学者,有人可以向我解释为什么我需要这些代码吗?
解决方法
Django的staticfiles是所有用于指定网站“外观”的文件(css和js文件以及图像)。在Django的官方网站上查看tutorial的这一部分。 MEDIA_URL部分是有关存储和提供用户上传的图片的;请注意,这仅在开发期间有效(DEBUG = True),不适合生产使用。请参阅this site,以了解如何在部署过程中提供静态文件。
如果您正在开发中,那么您在该代码中指定的是Django应该在其中加载所有图像,js和css文件的位置。
, initialized by their default member initializers,if provided in the class definition,and otherwise (since C++14)
可能不是必需的-请查看this answer。
static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)
对于在开发中显示媒体文件是必需的。您不应该在生产中使用它,因为它要求static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
为真。在生产中,应将Web服务器配置为直接提供静态文件和媒体文件。例如,在Nginx中,您可以在配置文件中定义settings.DEBUG
和location /static
。
检查documentation以获得更多详细信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。