我有一个非常简单的Servlet插件,我想在其上添加bootstrap。
首先,我必须在Atlassian-plugin.xml中添加所有Bootstrap资源:
<web-resource key="purism-resources" name="purism Web Resources">
<dependency>com.atlassian.auiplugin:ajs</dependency>
<resource type="download" name="purism.css" location="/css/purism.css"/>
<resource type="download" name="purism.js" location="/js/purism.js"/>
<resource type="download" name="jquery.min.js" location="/js/jquery.min.js"/>
<!-- comeco bootstrap-->
<resource type="download" name="bootstrap.js" location="/bootstrap/js/bootstrap.js"/>
<resource type="download" name="bootstrap.min.js" location="/bootstrap/js/bootstrap.min.js"/>
<resource type="download" name="bootstrap-treeview.js" location="/bootstrap/js/bootstrap-treeview.js"/>
<resource type="download" name="bootstrap-treeview.min.js" location="/bootstrap/js/bootstrap-treeview.min.js"/>
<resource type="download" name="npm.js" location="/bootstrap/js/npm.js"/>
<resource type="download" name="jquery.js" location="/bootstrap/js/jquery.js"/>
<resource type="download" name="bootstrap.css" location="/bootstrap/css/bootstrap.css"/>
<resource type="download" name="bootstrap.min.css" location="/bootstrap/css/purism.css"/>
<resource type="download" name="bootstrap-theme" location="/bootstrap/css/bootstrap-theme.css"/>
<resource type="download" name="bootstrap-theme.min.css" location="/bootstrap/css/bootstrap-theme.min.css"/>
<resource type="download" name="bootstrap-treeview.min.css" location="/bootstrap/css/bootstrap-treeview.min.css"/>
<resource type="download" name="res/" location="/bootstrap"/>
<!-- fim bootstrap-->
<resource type="download" name="images/" location="/images"/>
<context>purism</context>
P.S。所有这些补丁都是正确的。 而且,从我的servlet中提取我的速度,着名的pagebuilderservice:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException
{
pageBuilderService.assembler().resources().requireWebResource("com.plugins.purism.purism:purism-resources");
templateRenderer.render(TREE_VIEWER, resp.getWriter());
}
我的速度(非常简单):
<html>
<head>
<title>teste</title>
<!-- Required Stylesheets -->
<link href="bootstrap.css" rel="stylesheet">
<!-- Required Javascript -->
<script src="jquery.js"></script>
<script src="bootstrap-treeview.js"></script>
</head>
<body>
<div id="tree"></div>
</body>
</html>
我的问题是,当我尝试使用时,我得到了这些错误: $(&#39;#tree&#39;)。treeview({data:getTree()});
GET http://localhost:8080/plugins/servlet/res/jquery.js
treeservlet:15 GET http://localhost:8080/plugins/servlet/res/bootstrap-treeview.js
treeservlet:5 GET http://localhost:8080/plugins/servlet/bootstrap.css
treeservlet:11 GET http://localhost:8080/plugins/servlet/res/bootstrap.css
treeservlet:8 GET http://localhost:8080/plugins/servlet/jquery.js
treeservlet:9 GET http://localhost:8080/plugins/servlet/bootstrap-treeview.js
VM1591:3 Uncaught TypeError: $(...).treeview is not a function(…)
任何人都知道如何将Bootstrap资源添加到Jira Plugin Servlet中?
谢谢!
答案 0 :(得分:3)
删除
<!-- Required Stylesheets -->
<link href="bootstrap.css" rel="stylesheet">
<!-- Required Javascript -->
<script src="jquery.js"></script>
<script src="bootstrap-treeview.js"></script>
来自你的Velocity,因为我们试图通过调用requireWebResources()
来获得正确的资源路径来实现这一点。拥有这些行会重复它。
正如您在评论中提到的,为decorator添加元标记(这些在JIRA 5.0中已更改,我相信仍与JIRA 6和JIRA 7(OP测试)相关)。
例如,如果您希望页面顶部(标题)和页脚有JIRA导航栏,请使用
<meta name="decorator" content="atl.general">
在您的情况下,您已经选择了管理页面样式:
<meta name="decorator" content="atl.admin">
如果您想完全自己设置页面样式并且没有Atlassian品牌或样式,请使用:
<meta name="decorator" content="blank">
为什么会这样(我认为!)
如果您不添加装饰器,则使用requireWebResource("com.plugins.purism.purism:purism-resources");
声明的网络资源将不会添加到<head>
元素中。这是因为没有任何东西可以调用drainIncludedResources()
方法来为Velocity模板添加所需的资源。添加装饰器将调用drainIncludedResources()
* ,以便添加以Atlassian样式设置页面样式所需的资源。此调用还会通过调用requireWebResource()
来添加声明为所需的任何Web资源。
* RequiredResources的文档说JIRA调用的方法是drainIncludedResources()
,但我找不到任何相关文档。该功能应与此includeResources()方法相同。