简介:许多朋友问有关Django如何加载静态文件的问题。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!
像普通的HTML一样,但是使用Django的父亲和儿子模板,整个站,模块和第三页的CSS文件是更好的布局。
在Django项目的开发中,就像普通的Web开发一样,不可能通过“ IMGS/BG.JPG”访问本地静态文件。有必要进行一些配置以实现静态文件访问。
首先,在项目根路径下创建一个新的静态文件夹,然后在静态文件夹下创建相应的CSS,IMGS,JS和其他文件夹,以存储静态文件,例如CSS,IMG,JS。
第二,项目配置
1.打开settings.py并将其添加到底部:
2.打开urls.py并将其添加到urlpatterns :(注意,如果您还将urls.py设置在博客目录中,则必须在blog/urls.py中进行修改。不要忘记导入设置):
(但是在测量之后,我可以完成静态文件的访问,而无需添加此文件)
3.在HTML模板的顶部添加:
然后以这种格式调用您需要的格式,例如:
最终重新运行该项目,Django可以找到本地静态文件,例如IMG。目前,可以使用IMG和其他文件显示与模板相对应的页面。
我想将以前的ASP.NET网站移植到Django,并发现Django似乎得到了静态资源的支持。您无法根据相对路径直接找到某些配置,找到很多解决方案,并按以下方式进行整理:
1. Django的静态资源配置与版本!InterSectionIntersectionRemember!InterSectionIntersection1.3先前和将来的配置不同!IntersectionSectionTrestection以下内容仅适用于Django1.9;
2.在settings.py中安装应用程序以包含'django.contrib.staticfiles';
3. static_url in steratings.py是应用程序目录中静态文件所在的文件夹的相对路径。默认值为/静态/可以自定义;
4.调用时使用以下表格:
{%load static%}
导入JS,IMG和其他静态文件后导入错误:
文件“ d:python27libmimetypes.py”,第249行,在enum_types中
ctype = ctype.encode(default_encoding)#省略3.x!
UNICODEDECODEERROR:“ ASCII”编解码器无法在位置1中解码字节0xB0:不在范围内(128)
[27/dec/2015 15:26:32]“ get/static/assets/img/nextpage_small_grey.jpg http/1.1” 500 59“ 500 59”
在python安装目录中的lib/site包装中添加文件sitecustomize.py,找到解决方案的密钥错误文件mimetypes.py.py。
导入系统
sys.setdefaultencoding(“ CP1251”)
我设置的编码格式是UTF-8,我不知道其他格式是否可以。Restart操作和成功。
2. static_root:这是静态文件存储目录的配置。另一个角色是运行命令以收集静态文件(大约在命令的一部分),并最终收集并存储静态文件的位置。请注意,此配置仅在false中的debug =有效(生产环境)(关于稍后说话的原因)。
4. staticfiles_dirs:在实际项目开发中,如果我们的静态文件存储在一个或多个目录中,则可以将列表定义为存储静态文件。Django的默认配置没有此配置。当项目下有一个或多个静态资源的目录时,它非常适合此定义。注意,只有当Debug = true时,此配置仅是有效的(开发环境)
8.模板:定义HTML模板文件存储目录。如果使用Pycharm的IDE,则可以根据配置自动创建模板目录。Pycham将自动帮助我们配置。如果没有配置,您需要手动创建手动创建。当然,您也可以选择自定义此目录
9. CollectStatic:在项目部署期间,我们还需要收集静态文件。如果您可以手动收集静态文件,则无疑的工程量很大,部署后,必须将调试更改为debug = false。将会有一个问题无法加载CSS。因此,在项目部署之前,需要此操作。
django的django.contrib.staticfiles提供了收集静态文件的命令:python manage.py collectionstatic。执行命令后,将在配置的static_root中收集静态文件
建议使用新版本的Django进行开发。可以肯定的是,Django 1.4之后的Django 1.4的版本应支持以下设置
注意:Django 1.4版本需要在项目/urls.py的底部添加:
来自django.contrib.staticfiles.urls导入staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()
Django 1.5 -django 1.8不需要添加上述代码。
settings.py静态文件相关示例代码和说明:
#静态文件(CSS,JavaScript,图像)
static_url ='/static/'#运行Python Manage.py collectStatic#static_root文件夹用于复制所有staticfiles_dirs中的所有文件,以及每个应用程序中的静态文件。join(base_dir,'Collected_static')#将静态文件存储在项目中的其他文件夹可用于将公共静态文件存储在项目中。Static_root#如果您不想使用staticfiles_ders,则不能使用它,您可以使用它,可以还放入staticfiles_dirs =(os.path.join(base_dir,“ comm_static”),'/path/path/path/erther/static/',#您到达时可以编写此行)#这是默认设置。Django将在staticfiles_dirs中的文件夹中找到一个文件和每个应用程序下的静态文件夹。))))
静态文件放在相应的应用程序下的静态文件夹中,或staticfiles_dirs中的文件夹。
当debug = true时,django可以自动找到放置在其中的静态文件。(django“ search设备”在staticfiles_finders中,找到找到它的过程,查找该过程的过程类似于在使用xxx的过程中使用xxx的过程在Python中导入XXX)。
示例项目dj18 statatic,在应用程序应用下的静态中有一个zqxt.png图片:
dj18statatic b-博客│├├─Init__。py│ -admin.py││-─..m- - __INIT __。py│├─................默认情况下,您会发现此文件夹││└-[zqxt.png]│-tests.py│││└└└└└└└已添加到staticfiles_ders│J--[JQuery.js]│├│├│├│├│├──-py│├─—settings.py│-urls.py│ - w - manage.py- manage..pypy
当debug = true in settings.py中时,打开静态文件以打开开发服务器python manage.py runserver直接访问 /static/zqxt.png。
您还可以在settings.py中指定所有应用程序共享的静态文件,例如jquery.js等。
staticfiles_dirs =(os.path.join(base_dir,“ commit_static”),),),),),),),),),),),),),),)
将jquery.js放在common_stative/js/中,以便您可以在/static/js/jquery.js中访问它!
结论:以上是首席CTO注释向所有人介绍Django的全部内容。我希望这对每个人都会有所帮助。如果您想进一步了解这一点,请记住收集并关注此网站。