在Liferay Theme中包含jQuery和其他JS文件

时间:2012-10-17 13:59:28

标签: jquery liferay liferay-6 liferay-theme

我使用Liferay 6.1并创建了我的主题(sample-theme),我想添加jQuery。 我怎么能这样做?

为什么我有文件夹:sample-themeliferay-work,并且都有文件夹:css,js,templates?

我创建了文件夹_diffs和子文件夹js,然后复制jQuery并添加portal_normal.vm

<script src="/html/js/jquery/jquery-1.8.2.min.js"></script>

我没有看到任何变化,为什么?我怎样才能添加jQuery?不仅是单个portlet,而是所有人。


我没有文件夹 docroot 我使用Maven并且在 src / main / webapp 我创建了文件夹 _diffs 和内部文件夹< strong> js ,在那里我添加了 jquery.js ,并在 _diffs 创建的模板文件夹中添加了一个粘贴:

<script src="$javascript_folder/jquery-1.8.2.min.js"></script>

仍然是错的。也许文件夹_diffs应该在另一个地方?什么应该是maven项目的结构?

5 个答案:

答案 0 :(得分:9)

您可以将所有javascript文件添加到主题中的js文件夹中,例如:

  

样品主题/文档根/ _diffs / JS / jQuery的1.8.2.min.js

然后,为了让每个人都可以使用,您可以在目录{{1}中的模板文件<head>portal_normal.vm的{​​{1}}部分中编写以下任意一行。 }:

portal_pop_up.vm

或者

sample-theme/docroot/_diffs/templates/

注意:#js ("$javascript_folder/jquery-1.8.2.min.js") 用于将您的javascript更改应用于AUI对话框弹出窗口,如果您正在使用它们

关于事情如何运作的更多解释:

<script src="$javascript_folder/jquery-1.8.2.min.js"></script> 是一个速度变量,存在于主题的模板文件中,指向javascript存储路径(默认为:portal_pop_up.vm),可以在$javascript_folder中定义,如下所示:< / p>

${root-path}/js

您也可以像liferay-look-and-feel.xml一样自定义<theme id="sample" name="Sample"> <root-path>/html</root-path> <!-- optional --> <javascript-path>${root-path}/js/jQuery</javascript-path> <!-- So path becomes: sample-theme/html/js/jQuery --> </theme> ${root-path} <javascript-path>liferay-look-and-feel.xml所示<root-path>${root-path}的默认值为/,即它引用目录sample-theme/

基本上文件夹cssjstemplates&amp;在构建主题时,images会更新您在相应的_diffs文件夹(_diffs/css_diffs/js等)中所做的更改。这就是速度变量如$javascript_folder&amp; $css_folder指向sample-theme/js&amp; sample-theme/css分别代替sample-theme/_diffs/jssample-theme/_diffs/css

希望这有帮助。

答案 1 :(得分:4)

添加
portal_normal.vm中的 <script src="$themeDisplay.getPathThemeRoot()js/jquery-1.8.2.min.js" type="text/javascript">

将文件添加到sample-theme / docroot / _diff / js文件夹后

您也可以直接使用CDN <script src="<jquery url in CDN>" type="text/javascript">

答案 2 :(得分:2)

您应该将 jquery-1.8.2.min.js 添加到主题中的 docroot / _diffs / js 文件夹中。然后在 docroot / _diffs / templates / portal_normal.vm 中,您应该将以下行添加到&lt; head /&gt;部分:

<script src="$javascript_folder/jquery-1.8.2.min.js"></script>

我认为它应该有用。

答案 3 :(得分:0)

这应该对你有所帮助

 <script src="<%=request.getContextPath()%>/js/jquery-1.8.2.min.js" ></script>

答案 4 :(得分:0)

  1. 只有在有蚂蚁项目时才需要差异,对于MAVEN你不需要差异

  2. 当你想在portlet&amp;中执行它时,request.getContextPath非常有用。不是主题。

  3. 您可以使用“$ javascript_folder访问js文件夹中的任何内容