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

wit*_*010 9 jquery liferay liferay-6 liferay-theme

我使用Liferay 6.1,我创建了我的主题(sample-theme),我想要添加jQuery.我怎样才能做到这一点?

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

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

<script src="/html/js/jquery/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

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


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

<script src="$javascript_folder/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

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

Pra*_*h K 9

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

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

然后,为了让每个人都可以使用它,您可以<head>在模板文件的部分中编写以下任何行portal_normal.vmportal_pop_up.vm显示在目录中sample-theme/docroot/_diffs/templates/:

#js ("$javascript_folder/jquery-1.8.2.min.js")
Run Code Online (Sandbox Code Playgroud)

要么

<script src="$javascript_folder/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

注意:portal_pop_up.vm如果您正在使用它们,则将您的javascript更改应用于AUI对话框弹出窗口

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

$javascript_folder是一个速度变量,存在于主题的模板文件中,指向javascript存储路径(默认为:) ${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> 
Run Code Online (Sandbox Code Playgroud)

您还可以自定义${root-path},就像<javascript-path>在其指定liferay-look-and-feel.xml<root-path>,如图所示.默认值${root-path}/ie,它指的是目录sample-theme/.

基本上,文件夹css,js,templatesimages是而它与你在相应的进行变化更新的那些_diffs文件夹(_diffs/css,_diffs/js当你建立主题等).所以这就是速度变量喜欢$javascript_folder$css_folder指向sample-theme/js&sample-theme/css而不是sample-theme/_diffs/js或者的原因sample-theme/_diffs/css.

希望这可以帮助.


Art*_*nov 1

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

<script src="$javascript_folder/jquery-1.8.2.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

我想,它应该有效。