8

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

为什么我有文件夹:sample-theme并且liferay-work两者都有文件夹:css、js、模板?

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

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

而且我没有看到任何变化,为什么?如何添加 jQuery?不仅适用于单个 portlet,而且适用于所有 portlet。


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

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

它仍然是错误的。也许文件夹 _diffs 应该在其他地方?maven项目的结构应该是什么?

4

5 回答 5

8

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

示例主题/docroot/_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")

或者

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

注意: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> 

您也可以${root-path}通过<javascript-path>指定它来自定义,liferay-look-and-feel.xml如图<root-path>所示。的默认值${root-path}/ie 它指的是目录sample-theme/

基本上,文件夹css, js, templates&是在您构建主题时images随着您在相应_diffs文件夹 (_diffs/css等) 中所做的更改而更新的文件夹。_diffs/js这就是速度变量像$javascript_folder&分别$css_folder指向sample-theme/js&sample-theme/css而不是sample-theme/_diffs/jsor的原因sample-theme/_diffs/css

希望这可以帮助。

于 2012-10-18T09:58:30.037 回答
3

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

将文件添加到 sample-theme/docroot/_diff/js 文件夹后,
您也可以直接使用 CDN
<script src="<jquery url in CDN>" type="text/javascript">

于 2013-01-14T23:01:00.290 回答
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>

我认为,它应该工作。

于 2012-10-17T16:07:30.963 回答
0
  1. 只有在有 ant 项目时才需要 diffs,对于 MAVEN,您不需要 diffs

  2. 当您想在 portlet 而非主题中执行此操作时,request.getContextPath 很有用。

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

于 2017-02-02T04:37:36.230 回答
0

这应该对你有帮助

 <script src="<%=request.getContextPath()%>/js/jquery-1.8.2.min.js" ></script>
于 2017-02-01T14:05:54.123 回答