我正在尝试在我正在Cocoon / XSLT中构建的页面中包含一个外部.js文件。
Dir Struct:
/my_project
/xsl/my_page.xsl
/js/my_scripts.js
sitemap.xmap
在Sitemap中:
<map:match pattern="my_page.html">
<map:generate src="cocoon:/my_data.xml" />
<map:transform src="xsl/my_page.xsl" type="xslt2">
<map:parameter name="baselink" value="{baselink:SitemapBaseLink}" />
</map:transform>
<map:serialize type="html5" />
</map:match>
在my_page.xsl中:
<xsl:param name="baselink" />
...
<script src="//code.jquery.com/jquery-1.11.1.min.js"> </script>
<script src="../js/my_scripts.js" type="text/javascript"> </script>
在my_scripts.js中,我只有一行用于测试:
console.log('Success');
当我在浏览器中查看源代码时,我看到包含了脚本标记,但上面的日志语句不会执行。
HTML:
<!DOCTYPE html SYSTEM "about:legacy">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
…
</head>
<body>
…
<script src="//code.jquery.com/jquery-1.11.1.min.js"> </script>
<script src="../js/my_scripts.js" type="text/javascript"> </script>
</body>
</html>
因此,尽管脚本标记位于代码中,但我不确定它是否实际指向源代码 - 或者日志语句将执行。
当我查看网络标签(Firebug)的JavaScript部分时,我看到:
GET my_scripts.js 200 OK
以下条目位于控制台中:
<?xml version="1.0" encoding="UTF-8"?> my_scripts.js (line 1)
为了在XSL中包含外部.js,我还需要做什么/“特殊”吗?
谢谢!
答案 0 :(得分:1)
固定。
在Sitemap中添加了以下内容:
<map:match pattern="**.js">
<map:read src="js/{1}.js" mime-type="text/javascript" />
</map:match>
将javascript include更改为:
<script src="my_scripts.js" type="text/javascript"> </script>