Django runserver在开发中不提供静态文件

vjhs03f7  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(127)

我正在使用Django和runserver进行开发。当我部署到我的生产服务器时,我可以看到我所有的静态文件,但不能在我的本地计算机上看到。
我做了collectstatic,并设置了DEBUG = True
我在网上发现了许多不同的观点,最突出的是STATICFILES_DIRS,但这对我不起作用。
我如何设置它,以便在我的开发环境中可以看到静态文件,并且当我将文件上传到服务器时,我不需要为生产环境进行任何更改即可正常工作。
编辑-我的urls.py文件:

from django.conf.urls import patterns, include, url
from django.conf.urls.static import static
import newsflashes
import settings

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^admin/', include(admin.site.urls)),
    url(r'^', include('newsflashes.urls')),
) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

编辑-文件结构:
我有两个目录,静态和动态。在static目录中是静态文件,在dynamic目录中是django apps。
编辑-设置:
我的相关设置如下

STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
xytpbqjk

xytpbqjk1#

我设法修好了。
我在我的项目文件夹中创建了另一个名为static的目录,并将静态文件复制到那里。
我接着补充说:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import settings
if settings.DEBUG:
    urlpatterns += staticfiles_urlpatterns()

我的urls.py

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

我的settings.py
然后,当我部署时,我执行manage.py collectstatic,由于Apache配置正确,一切都将正常工作!
基于http://dlo.me/archives/2013/01/14/how-to-serve-static-files-django/
感谢所有人。

63lcw9qa

63lcw9qa2#

我通常运行python manage.py runserver --insecure来强制使用staticfiles应用程序提供静态文件,即使DEBUG设置为False。
这是他们的文档链接。https://docs.djangoproject.com/en/3.2/ref/contrib/staticfiles/#cmdoption-runserver-insecure

相关问题