Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django生产静态文件不工作(部署)_Django_Python 3.x - Fatal编程技术网

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

在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 = [
    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”,这是正确的。