发布网友 发布时间:2024-09-27 18:06
共1个回答
热心网友 时间:3分钟前
导读:本篇文章首席CTO笔记来给大家介绍有关django如何导入静态文件路径的相关内容,希望对大家有所帮助,一起来看看吧。
django中怎么载入css等静态文件尝试:urls.py中urlpatterns的设置
urlpatterns=patterns('',
url(r'^media/(?Ppath.*)$','django.views.static.serve',{'document_root':settings.STATIC_PATH}),
)
django开发环境中静态资源怎么存放
其实将静态文件路径硬编码在模版中也可以正常运行,如使用href="/static/css/sample.css",前提是配置好了STATIC_URL和STATIC_DIRS。
但并不推荐这么做,因为如果后来静态资源的位置发生了迁移,如使用服务器或者使用CDN,就要修改一大堆URL。而使用推荐的方法可以避免这个庞大的工作量,最多只需要修改STATIC_URL即可。
Django静态文件与动态文件编辑settings:
MEDIA_ROOT和MEDIA_URL代表的是用户上传后的文件保存的地方。可以理解为存放可变文件的文件夹。
这两个参数有什么用处呢?
在Django的FileField和ImageField这样的Model类中,有upload_to参数可选。当upload_to设置相关的地址后,如例子:
文件上传后将自动保存到:os.path.join(MEDIA_ROOT,upload_to),在本例中就是:/static/uploads/test_pictures
而MEDIA_URL,则代表用户可以通过怎样的URL来访问这些上传后的文件资源。
在本例子中,本机地址是:,MEDIA_URL设置为/static/uploads/
那么通过:文件名就可以访问相关的上传图片或者其他文件。
STATIC_ROOT和STATIC_URL则是网站中,用于网站放置的静态图片、CSS、JS等文件的保存地址。可以理解为,保存网站运行中不会再变文件的文件夹(即不会删除或者新增)
STATIC_URL,同MEDIA_URL类似;设置STATIC_URL为"/static/"时候,通过:文件名就可以访问相关的静态文件了。
STATIC_ROOT是一个比较特殊的文件夹。这是Django的开发模式和部署模式区别最大的地方。
通常我们在开发模式下,可以在我们所在的project下建立相应的app,然后每个app下都建立相应的static文件夹。在开发模式下(Debug=True),Django将为我们自动查找这些静态文件(每个app)并在网页上显示出来。然而,在部署模式下,Django认为这些工作交由web服务器来运行会更有效率。
因此,在部署时,我们需要运行一下:
这个命令将会把每个app里的static目录下的文件copy到STATIC_ROOT这个文件夹下。
如果在部署模式下,即:(Debug=False)访问相关网页,如:文件名,将不会访问Django下各个App中的static文件夹,而是STATIC_ROOT中所指定的文件夹。
为了在部署模式下正确使用,我们还需要在urls.py中添加以下:
这相当于告诉Django碰到一个"static"开头的链接时,该如何处理。
了解完以上之后,我们让图片在前端显示出来。
编写一个show视图函数,来传递动态图片:
然后编写show.html:
django1.9怎么配置静态文件想把以前的一个asp.net网站移植到django上,发现django对静态资源似乎支持的不好,不能直接根据相对路径查找,要做一些配置,找了很多解决方案,整理如下:
1、django对静态资源的配置是跟版本有关的!!!切记!!!1.3以前的和以后的配置不太一样!!!下面仅针对Django1.9;
2、settings.py中的installed
apps
要包含'django.contrib.staticfiles';
3、settings.py中的STATIC_URL就是app目录下的静态文件所在文件夹的相对路径,默认为/static/,可以自定义;
4、调用时用如下形式:
{%
load
static
%}
img
src="{%
static
"my_app/myexample.jpg"
%}"
alt="My
image"/
导入js,img等静态文件后报错:
File
"D:\Python27\lib\mimetypes.py",
line
249,
in
enum_types
ctype
=
ctype.encode(default_encoding)
#
omit
in
3.x!
UnicodeDecodeError:
'ascii'
codec
can't
decode
byte
0xb0
in
position
1:
ordinal
not
in
range(128)
[27/Dec/2015
15:26:32]
"GET
/static/assets/img/nextPage_small_grey.jpg
HTTP/1.1"
500
59
找到关键报错文件mimetypes.py,百度了一下,找到了解决方案:在Python安装目录下的lib/site-packages中添加一个文件sitecustomize.py,内容为
import
sys
sys.setdefaultencoding("cp1251")
我设置的编码格式为utf-8,不知道其他格式是否也可以。重启运行,成功。
django前端怎么设置静态文件路径设置一个路径变量
APP_PATH=os.path.dirname(os.path.dirname(__file__))
#Absolutepathtothedirectorystaticfilesshouldbecollectedto.
#Don'tputanythinginthisdirectoryyourself;storeyourstaticfiles
#inapps'"static/"subdirectoriesandinSTATICFILES_DIRS.
#注意要修改STATIC_ROOT变量
STATIC_ROOT=os.path.join(APP_PATH,'static').replace('\\','/')
#URLprefixforstaticfiles.
#Example:ample.com/static/","hic.example.com/"
STATIC_URL='/static/'
#当然还有STATICFILES_DIRS变量
STATICFILES_DIRS=(
#Putstringshere,like"/home/html/static"or"C:/www/django/static".
#Alwaysuseforwardslashes,evenonWindows.
#Don'tforgettouseabsolutepaths,notrelativepaths.
os.path.join(APP_PATH,'mobile_oa_server/static').replace('\\','/'),
)
django怎么配置可以获取静态文件可以用服务器配置,js、css、img转到相应路径。也可以在url.py里加入(r'^media/(?Ppath.*)$','django.views.static.serve',{'document_root':settings.STATIC_PATH}),可以在settings.py里设置也可以使用绝对路径。意思是/media/?.(js|css|img|others)的静态文件在那个路径下。
结语:以上就是首席CTO笔记为大家介绍的关于django如何导入静态文件路径的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。