django 中式用静态文件(css,javascript)

(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/css'}),
(r'^js/(?P</path><path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/js'}),
(r'^images/(?P</path><path>.*)$', 'django.views.static.serve', {'document_root': '/var/www/django-demo/images'}),

模板中使用下述方式即可:

<link href="/css/demo.css" type="text/css" rel="stylesheet">

注:可采用os.path.dirname(globals()["__file__"])来获得当前文件所在路径,比如

(r'^css/(?P<path>.*)$', 'django.views.static.serve', {'document_root': os.path.dirname(globals()["__file__"])+'/css'}),

可以使用os.path.abspath()函数返回此路径的绝对路径。

==============

要在django的tempalte file中引用css、js、gif等静态文件,首先一条setting.py中DEBUG开关打开。
1、在project目录下建立一个存放静态文件的目录,如:medias
2、在url.py patterns中增加一行:
   (r'^site_media/(?P<path>.*)$','django.views.static.serve',{'document_root':settings.STATIC_PATH}),
   还要from django.conf import setting
3、在setting.py中加入一行:
   STATIC_PATH='./medias'

如此设置后,就可以在template file 中引用media中存放的静态文件了,如:
   <img src='/site_media/django.gif'>


线上环境

在使用Django开发的Web项目中是避免不了使用css、javascript、js等静态文件的,而对于这些静态文件的处理,django官 网这样写:Django itself doesn’t serve static (media) files, such as images, style sheets, or video. It leaves that job to whichever Web server you choose.就是说django本身不处理类似于图片、样式表、视频等静态文件,它将此项工作交给了你选择的Web服务器。

在网上搜索到的django项目处理静态文件的示例中,大家似乎都在使用如下的方法让django处理静态文件:

? View Code PYTHON
urlpatterns += patterns('',
(r'^static/(?P.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT}),
)

而对于django.views.static.serve方法,django官网说得很清楚:Using this method is inefficient and insecure. Do not use this in a production setting. Use this only for development.就是说这种方法是低效且不安全的,不要在生产环境使用此方法,只在开发环境使用。

这时对于静态文件的处理,我们只能使用我们选择的Web服务器来处理了。比如使用nginx服务器的话,可以如下设置:

先设置settings.py,如下,

设置settings.py

设置settings.py

然后设置nginx的相应网站配置部分,如下,

配置nginx

配置nginx

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Django中访问静态文件有几种方法。一种方法是在settings.py中设置STATIC_URL和STATIC_ROOT。STATIC_URL是静态文件的URL前缀,STATIC_ROOT是静态文件的根目录。你可以将静态文件放在STATIC_ROOT目录下,并通过STATIC_URL访问。例如,如果你的STATIC_URL设置为'/static/',那么你可以通过'/static/css/style.css'来访问css文件。另一种方法是使用django.views.static.serve视图函数来提供静态文件的访问。你可以在urls.py中添加类似下面的代码来配置静态文件的访问路径: ``` from django.conf import settings from django.conf.urls.static import static urlpatterns = \[ # other url patterns \] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) ``` 这样,你就可以通过URL来访问静态文件了。例如,如果你的STATIC_URL设置为'/static/',那么你可以通过'/static/css/style.css'来访问css文件。另外,你还可以使用django.views.static.serve视图函数来提供静态文件的访问。你可以在urls.py中添加类似下面的代码来配置静态文件的访问路径: ``` from django.conf.urls import url from django.views.static import serve urlpatterns = \[ # other url patterns url(r'^static/(?P<path>.*)$', serve, {'document_root': '/path/to/static/files'}), \] ``` 这样,你就可以通过URL来访问静态文件了。例如,如果你的静态文件存放在'/path/to/static/files'目录下,那么你可以通过'/static/css/style.css'来访问css文件。 #### 引用[.reference_title] - *1* *2* [Django关于访问静态文件总结](https://blog.csdn.net/WaitForFree/article/details/39815507)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [8-Django静态文件访问](https://blog.csdn.net/LOVEYSUXIN/article/details/122324842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值