我正在尝试在Cocoon / XSLT中构建的页面中包含一个外部.js文件。
目录结构:
/my_project
/xsl/my_page.xsl
/js/my_scripts.js
sitemap.xmap
在站点地图中:
<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');
当我在浏览器中查看源代码时,我看到其中包括script标记,但是上面的log语句没有执行。
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>
因此,尽管脚本标记在代码中,但我不确定它实际上是否指向源-否则将执行log语句。
当我查看“网络”标签(Firebug)的“ JavaScript”部分时,我看到:
GET my_scripts.js 200 OK
并且以下条目在控制台中:
<?xml version="1.0" encoding="UTF-8"?> my_scripts.js (line 1)
为了在XSL中包含外部.js,我还需要做其他/“特殊的”事情吗?
谢谢!
最佳答案
固定。
在站点地图中添加了以下内容:
<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>
关于javascript - 在Cocoon/XSLT中包含外部.js,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27094226/