Mei*_*eir 17 django static-files django-staticfiles
我正在使用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)
Run Code Online (Sandbox Code Playgroud)
编辑 - 文件结构:
我有两个目录,静态和动态.内部静态是静态文件,动态目录中是django应用程序.
编辑设置:
我的相关设置如下
STATIC_ROOT = os.path.join(BASE_DIR, '..', 'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = ()
Run Code Online (Sandbox Code Playgroud)
Mei*_*eir 23
我设法修复它.
我在我的项目文件夹中创建了一个名为static的另一个目录static,并在那里复制了我的静态文件.
然后我补充说:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
import settings
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)
对我的 urls.py
和
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)
Run Code Online (Sandbox Code Playgroud)
我的settings.py.
然后,当我部署我执行manage.py collectstatic并且因为Apache配置正确,一切都会工作!
基于http://dlo.me/archives/2013/01/14/how-to-serve-static-files-django/
谢谢大家.
小智 11
python manage.py runserver --insecure即使 DEBUG 设置为 False,我通常也会使用staticfiles 应用程序强制提供静态文件。
这是他们的文档的链接。https://docs.djangoproject.com/en/3.2/ref/contrib/staticfiles/#cmdoption-runserver-insecure