使用Django开发服务器显示404 debug is false的媒体文件

wlwcrazw  于 2023-08-08  发布在  Go
关注(0)|答案(3)|浏览(110)

在把Django项目部署到cpanel之前,我一直在尝试测试它

settings.py

STATIC_URL = '/static/'

MEDIA_URL = '/media/'

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

STATICFILES_DIRS = [ os.path.join(BASE_DIR, 'static'), ]

字符串

xzlaal3s

xzlaal3s1#

=在项目urls.py中==

from django.contrib import admin
from django.urls import path,include
from django.conf import settings
from django.conf.urls.static import static
from django.urls import path

urlpatterns = [
    path("", include("myapp.urls")),
    path('admin/', admin.site.urls),

]

urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

字符串

7gcisfzg

7gcisfzg2#

建议在开发时修改urlpatterns以提供静态文件。
如果您想从已经为您的网站提供服务的同一服务器提供静态文件,该过程可能类似于:
1.将代码推到部署服务器。
1.在服务器上,运行collectstatic将所有静态文件复制到STATIC_ROOT中。
1.配置您的Web服务器以在URL STATIC_URL下提供STATIC_ROOT中的文件。例如,以下是如何使用Apache和mod_wsgi实现此操作。
如何在Apache和mod_wsgi中使用Django

xxhby3vn

xxhby3vn3#

当我们使用debug=False时,Django不会处理媒体文件,所以在服务器端,我们必须像处理静态文件一样处理
如果你使用Nginx,让它来服务媒体文件
例如
转到nginx/sites-available并添加此

location /media/ { root */home/myprojectdir/myproject*; }

字符串

相关问题