本文的首席执行官注释将介绍Djangostatic和Django部署的相关内容。我希望这对每个人都会有所帮助。让我们来看看。
本文目录清单:
1. Django静态文件路径问题2.为什么Django配置静态3,Python - Django项目开发:配置项目/静态/路径,调用静态文件,例如CSS,IMG,JS等。4。DJANGO静态文件和动态文件5,设置静态的djangohow可能是浏览器的缓存。
按住CTRL+F5,强迫浏览器刷新CS和JS文件...
如果它不起作用,请从Django从入口到熟练程度来找到它。有解决方案吗?
如果您只是使用静态,则配置将比媒体少一个步骤,并且将比较以下内容。当它到达静态时,您必须不得不谈论Django的开发环境和部署环境之间的区别。django配置文件设置.py调试变量是主要区别。debug = true表示,在开发环境(调试模式)下,在开发环境下(调试模式),调试模式,调试= false),相反,它用于正式部署环境中。两个,例如缓存,错误信息的方式等以及今天的静态文件的处理方法。开发环境中的静态文件由Django随附的Web服务器处理(这将是更多方面)。如果调试设置为false,则Web服务器带有Django自然不会处理静态文件。静态文件已移交给NGINX,可以处理Apache(这将更有效)。
让我们谈谈开发环境中静态配置的方式。
这次,我主要使用Django版本1.4版本对其进行配置。必须提前声明这一点,因为1.4之后,Django的项目结构发生了很大变化。如果将以下配置方法放在Django 1.3上,则绝对不合适,值得注意。StaitC配置仅在settings.py中进行。
调试= true
这种设置环境在开发环境中。
然后自己构建一个可变site_root。该变量不是必需的,但是为了重复使用,可以随机使用该名称。
导入操作系统
sit_root = os.path.join(os.path.abspath(os.path.dirname(__file__)),'..')
变量值项的根目录是settings.py的存储位置。
然后将值分配给静态文件变量,告诉Django,静态文件在哪里
static_root = os.path.join(site_root,'static')
说到哪个,我应该谈论项目文件结构。例如,这很容易让人,这段时间的项目结构如下:
我的项目
- - 我的项目
----------__init__.py
--------设置
-------- urls.py
-------- wsgi.py
- - 博客
----------__init__.py
--------模型
--------视频
------- test.py
- - 静止的
-------- CSS
-------------- style.css
-------- JS
------------------- jQuery.js
- - - - 图片
--------------------我JPG
- - 媒体
--------上传
注意项目的结构,您会发现Site_root是
我的项目
- - 我的项目
路径。
static_root是
我的项目
- - 媒体
路径。
好的,然后配置说
static_url ='/static/'
模板中使用的静态文件URL的后缀。
最后一个关键部分是staticfiles_dirs配置以下
staticfiles_dirs =(
(“ css”,os.path.join(static_root,'css')),),),),),),
(“ JS”,OS.Path.Join(static_root,'js'),
(“图像”,os.path.join(static_root,'images'),),
治愈
简而言之,静态文件夹在项目中使用了三个CSS JS Images文件夹(请参阅项目结构)。他们的道路是:
os.path.join(static_root,'css'),os.path.join(static_root,'js'),os.path.join(static_root,'images');
我们给了他们三个别名CSS,JS,图像(您可以随意给出它,但是为了简单的记忆,我们的原始名称指定别名)
此时,Staitc已完成,并且无需在URLS.PY中配置相关内容。Django将自动找到分析静态文件的正确途径。与媒体相比,配置中的一步也要少。
配置后,您可以在模板中正常使用静态文件。如何使用?请使用模板说明。
呢Doctype HTML
html lang =“ zh-cn”
头
meta charset = utf-8
titlestaitc示例/标题
链接rel =“ stylesheet” type =“ text/css” href =” https://www.shouxicto.com/article/ {{static_url}} css/style.css/style.css“媒体”媒体=“屏幕” //
脚本类型=“ text/javascript” src =“ https://www.shouxicto.com/article/ {{static_url}} js/jquery.js”/script
/头
身体
img src =“ https://www.shouxicto.com/article/ {{static_url}} images/me.jpg”“ alt =” [#0#]
/身体
/html
注意{{static_url}}是在设置中使用static_url变量,然后分析:/static/。
{{static_url}} css/style.css最终解析了我们想要的内容:/static/css/style.css,django将根据配置文件找到相应的文件。
结束时,让我们谈谈如何建立正式的部署环境:
调试= false
首先将调试设置为false,将DJANGO环境视为正式的非示例模式,然后Django将不再单独处理静态页面。最后,将静态文件移交给nginx apache进行处理。
讨论NGINX如何正确分析静态文件。在服务器中添加本地静态文件处理
位置 /静态 / {
root/home/www-data/twogoo/myproject/;
}
还有一个容易犯错误的地方,这是路径。一些学生经常指定这样的路径:/home/www-data/twogoo/myproject/staitc/;因此,nginx不应该找到静态文件,因为nginx将运行// home/www-data/twogoo/myproject/staitc/staitc/找到它。请注意,在静态文件处理中,您会更加顺畅。
在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和其他文件显示与模板相对应的页面。
编辑设置:
Media_root和Media_url表示用户上传的文件。它可以理解为存储可变文件的文件夹。
这两个参数的用途是什么?
在诸如Django的FileField和ImageField之类的模型类中,有upload_to参数可供选择。
上传文件后,它将自动保存到:OS.Path.join(Media_root,upload_to)。在此示例中
Media_url表示用户可以通过可以访问的URL访问这些上传的文件资源。
在此示例中,该计算机的地址为:
然后通过:文件名可以访问相关的上传图片或其他文件。
static_root和static_url是网站上使用的静态图片,CSS,JS和其他文件的保存地址。可以理解,网站操作期间将不再更改文件的文件夹删除或添加)
static_url,类似于Media_url;当setter_url为“/static/”时,通过:文件名可以访问相关的静态文件。
static_root是一个相对特殊的文件夹。这是Django的开发模型与部署模型最不同的地方。
通常,在开发模式下,我们可以在我们的项目下建立相应的应用程序,然后在每个应用程序下设置相应的静态文件夹。在DEBUG = true中,Django将自动为我们找到这些静态文件(每个应用程序)并在WebPage.ever,在部署模式下,Django认为这些任务更有效地由Web服务器运行。
因此,部署时,我们需要运行:
此命令将将每个应用程序中的文件复制到静态目录的文件为static_root文件夹。
如果在部署模式下,(debug = false)访问相关的网页(例如:文件名,将无法访问django下的每个应用程序中的静态文件夹,而是在static_root中指定的文件夹。
为了在部署模式下正确使用它,我们还需要将以下内容添加到URLS.PY:
这相当于在“静态”开头的链接时告诉如何处理Django。
理解上述内容后,让我们在前端显示图片。
编写显示视图功能以传递动态图片:
然后写show.html:
主要是以下内容:
static_url ='/static/'
static_root = os.path.join(base_dir,“ static”)
staticfiles_dirs =(
#将字符串放在这里,例如“/home/html/static”或“ c:/www/django/static”。
#总是在Windows上使用前向Slasshes,事件。
#不要忘记使用绝对路径,而不是相对路径。
os.path.join(base_dir,“资产”),
治愈
结论:以上是首席CTO的所有内容都注明了Djangostatic所在地点。感谢您的时间阅读此网站。我希望这对您有帮助。有关Django部署的更多相关内容,Djangostatic是在此站点上忘记的信息。