Django生产静态文件不工作(部署)
在Linux服务器中部署我的Django项目时,静态文件不会被上传。我按照文件上的说明做了,但似乎不起作用 这就是我到目前为止所做的:Django生产静态文件不工作(部署),django,python-3.x,Django,Python 3.x,在Linux服务器中部署我的Django项目时,静态文件不会被上传。我按照文件上的说明做了,但似乎不起作用 这就是我到目前为止所做的: DEBUG = False ..... STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles') MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') urlpatterns
DEBUG = False
.....
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urlpatterns = [
path('admin/', admin.site.urls),
#remaining urls here....
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
python manage.py collectstatic
设置。py:
DEBUG = False
.....
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urlpatterns = [
path('admin/', admin.site.urls),
#remaining urls here....
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
python manage.py collectstatic
url.py:
DEBUG = False
.....
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urlpatterns = [
path('admin/', admin.site.urls),
#remaining urls here....
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
python manage.py collectstatic
为了部署静态文件,我键入了以下命令:
DEBUG = False
.....
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
urlpatterns = [
path('admin/', admin.site.urls),
#remaining urls here....
]
if settings.DEBUG:
urlpatterns = urlpatterns + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
python manage.py collectstatic
所有文件都被推送到根文件夹中名为“staticfiles”的目录中,该命令按预期工作
但是,当启动Django服务器时,所有静态文件(即JS、CSS和媒体文件)都看不到。事实上,这个网站已经被破坏了。但是当调试模式设置为True时,站点再次正常工作
出了什么问题?有人能告诉我哪里出了错吗 用于生产 安装以下软件包
yum install python-pip httpd mod_wsgi
配置Python虚拟环境和Django项目
配置Apache
vim /etc/httpd/conf.d/django.conf
Alias /static /home/user/myproject/static
<Directory /home/user/myproject/static>
Require all granted
</Directory>
<Directory /home/user/myproject/myproject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
WSGIDaemonProcess myproject python-path=/home/user/myproject:/home/user/myproject/myprojectenv/lib/python2.7/site-packages
WSGIProcessGroup myproject
WSGIScriptAlias / /home/user/myproject/myproject/wsgi.py
您能检查一下控制台打印时出现了什么错误吗?我收到的错误之一是:GET net::ERR_ABORTED 404(未找到)您是否设置了web服务器来提供静态文件?从您的URL可以清楚地看到,“静态”仅用于开发。@DanielRoseman是的,web服务器已设置好。我正在使用Apache。如何设置?显示配置。“服务”在这里做什么?使用静态文件有点错误,最好使用
{%static%}
标记,然后定义路径url@LinhNguyen你能演示一下吗?演示?您是否遵循django?应该都在那里,您可以使用src=“{%static”my_app/example.jpg“%}”
获取文件路径这是错误的答案。请不要继续提及这一点<代码>服务仅用于开发。OP认为静态根目录应该是“staticfiles”,而不是“STATIC”,这是正确的。