velocity模板中如何引用css和js?

How to reference css and js in velocity template?

我正在尝试访问我的 css 和 js 文件(位于 resources/css/stylesheet.css 和 ../js/..),但我不确定如何。

我已经尝试在 和 标签之间使用 $webResourceManager.requireResource(xxx:xxx) ,但它只是在网页上打印 $webRes... 。我还在头部使用了#requireResource(xxx:xxx)。它没有打印在页面上,但也没有用。

atlassian-plugin.xml

<web-resource key="statPlugin-resources" name="statPlugin Web Resources">
        <dependency>com.atlassian.auiplugin:ajs</dependency>

        <resource type="download" name="statPlugin.css" location="/css/statPlugin.css"/>
        <resource type="download" name="statPlugin.js" location="/js/statPlugin.js"/>
        <resource type="download" name="images/" location="/images"/>
        <resource type="velocity" name="test" location="/templates/test.vm"/>

        <context>statPlugin</context>
</web-resource>

在page.vm

<head>
    <title>Stat Plugin Configuration</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

</head>

$webResourceManager.requireResource("com.tdk.plugin:statPlugin-resources")

<body>
...
</body>

Error message: Uncaught ReferenceError: addCard is not defined at HTMLButtonElement.onclick (stat-config:33)

所以没有找到js文件

答案很简单,但很难找到,因为文档已过时。在我的第一次尝试中,我尝试使用不再被弃用的 WebresourceManager。你必须使用 ConfluenceWebresourceManager。您可以在使用组件导入时访问它。

要为 Velocity 插件提供资源管理器,您必须使用

context.put("confluenceWebResourceManager",confluenceWebresourceManager");

在您的 servlet 的 doGet 或 doPost 中。

在模板本身中,您必须编写以下内容:

<head>
...
</head>
    $confluenceWebResourceManager.requireResource("com.company.plugin.pluginName:pluginName-resources")
<body>
...