Liferay Spring MVC portlet导入多个.js文件
Liferay-Spring MVC portlet importing multiple .js files
我正在移植我的Spring MVC Servlet应用程序,以便与Liferay中的部署兼容。我正在将应用程序转换为Spring MVC portlet。我的应用程序使用html+javascript作为前端。我现在无法在我的index.html中导入.js或.css文件,因为相对URL不起作用。在这方面有什么帮助吗?
如果您在liferay-portlet.xml
文件中提供javascript和css文件的位置,那么它将被自动添加。您不必显式地将相同的内容添加到您的html/jsp文件中。
在您的liferay-portlet.xml中,请使用正确的文件路径添加以下属性。
<header-portlet-css>/css/main.css</header-portlet-css>
<header-portlet-javascript>/js/main.js</header-portlet-javascript>
此外,如果你想访问任何静态资源,如图像或其他任何东西,你可以使用这样的路径
<img src='<%=request.getContextPath()%>/images/gear.png' class='settings' />
其中的结构类似于
-portlet---docroot------图像--------gear.png
您的引用是相对于web应用程序上下文引用的,通常是门户ROOT上下文,在本例中包括portlet实例和一些其他依赖结构(相关的LR主题),而不是您假设的portlet(应用程序)上下文。因此,解决方案是使用门户实例特定的全局变量,该变量的前缀位于路径定义前面。为了实现这一点,您必须在呈现HTML页面内容之前构造此路径。这通常是使用一些Liferay实用程序类来实现的,例如在JSP的情况下:
<link href="<%= PortalUtil.getStaticResourceURL(request, request.getContextPath() + "/css.jsp", portlet.getTimestamp()) %>"
显然,如果您没有像JSP这样的服务器端脚本(BTW,我认为这不是一个好主意),那么您必须使用其他Java层工具来解决这个问题,以便在浏览器呈现HTML之前将其写入HTML。
相关文章:
- JS文件的路径正在消失
- 我的外部js文件无法加载
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- 动态加载和卸载js文件
- 如何将变量传递到另一个js文件
- 如何将所有JS文件连接到一个文件夹中
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 如何将模板中的标记脚本移动到.js文件中
- 什么's是连接供应商js文件的最佳方式
- 如何在定义js文件后为外部javascript文件设置变量
- 如何在JS文件中获取资源(.resx)字符串
- 将*.js文件的内容放入Object中
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 导致内容安全策略(CSP)冲突错误的本地jquery.js文件
- 如何使用Gmail运行.js文件
- 如何定义一个模块并使用它来分离js文件
- Angular JS文件上传到托管服务器
- 如何引用HTML中节点模块中的js文件
- 如何将JS文件从其他文件夹链接到页面