Dexterity开发手册:第六章 第7节静态资源
Dexterity开发手册:第六章 第7节静态资源
http://www.315ok.org/blogfolder/403
http://www.315ok.org/logo.png
Dexterity开发手册:第六章 第7节静态资源
Dexterity开发手册:第六章 第7节静态资源
添加图片和样式表 本手则开始部分,我们看了怎样创建视图,怎样用文件和图片字段。这些都是动态对象。然而,我们也经常需要一些静态资源 如 image/icon, CSS or JavaScript文件等。
注册静态资源目录
管理静态资源最简单的方法是通过 five.grok注册一个静态资源目录。即在包中添加一个叫"static"的目录,并保证加入<grok:grok package="." />行在configure.zcml文件中即可。
如果在静态资源目录中包含一个conference.css文件,那么它的可调用访问路径是 http://<server>/site/++resource++example.conference/conference.css.
静态资源通常被加到模板中。通常可以填充Plone的 main_template中的 style_slot 或者 javascript_slot 。
例如:在我们的 presenter_templates/view.pt中,可以按如下方式添加css:
可以采用 portal_css registry (或者portal_javascripts)注册全站有效的css 或者js代替上文讲的每模板情况的注册。
我们在注册内容类型时,可以指定一个图标,采用下面的语法:
注册静态资源目录
管理静态资源最简单的方法是通过 five.grok注册一个静态资源目录。即在包中添加一个叫"static"的目录,并保证加入<grok:grok package="." />行在configure.zcml文件中即可。
如果在静态资源目录中包含一个conference.css文件,那么它的可调用访问路径是 http://<server>/site/++resource++example.conference/conference.css.
如果你需要注册另外的资源目录,你可以用 <browser:resourceDirectory /> ZCML语句。这个语句要求两个属性:名称 出现在 ++resource++ namespace后面; 目录 一个包含资源的相对路径。在页面模板中导入 CSS 和 JavaScript文件
静态资源通常被加到模板中。通常可以填充Plone的 main_template中的 style_slot 或者 javascript_slot 。
例如:在我们的 presenter_templates/view.pt中,可以按如下方式添加css:
<head>
<metal:block fill-slot="style_slot">
<link rel="stylesheet" type="text/css"
tal:define="navroot context/@@plone_portal_state/navigation_root_url"
tal:attributes="href string:${navroot}/++resource++example.conference/conference.css"
/>
</metal:block>
</head>注意,应当让所有资源路径都是相对于站点根,以便资源缓存。用 Plone的 resource registries注册资源
可以采用 portal_css registry (或者portal_javascripts)注册全站有效的css 或者js代替上文讲的每模板情况的注册。
portal_css 和 portal_javascripts 将归并、压缩资源,相应设置caching headers采用 GenericSetup cssregistry.xml or jsregistry.xml 文件注册资源文件,例如加入conference.css文件的方法如下:
<?xml version="1.0"?>
<object name="portal_css">
<stylesheet id="++resource++example.conference/conference.css"
title="" cacheable="True" compression="safe" cookable="True"
enabled="1" expression="" media="screen" rel="stylesheet" rendering="import"
/>
</object>同理,加入一个js文件在jsregistry.xml 中:<?xml version="1.0"?>
<object name="portal_javascripts">
<javascript cacheable="True" compression="none" cookable="True"
enabled="False" expression=""
id="++resource++example.conference/conference.js" inline="False"/>
</object>引用资源文件夹中的图片文件:<img style="float: left; margin-right: 2px; margin-top: 2px"
tal:define="navroot context/@@plone_portal_state/navigation_root_url"
tal:attributes="src string:${navroot}/++resource++example.conference/program.gif"
/>内容类型图标我们在注册内容类型时,可以指定一个图标,采用下面的语法:
<property name="content_icon">++resource++example.conference/presenter.gif</property>