我的网络应用程序结构如下:
我在child.html中有javascript,需要在master.html的jQuery链接下面。 Twig是否有这样的标签?
用示例输出示例澄清:
<!DOCTYPE html>
<html>
<head>
...
</head>
<body>
<!-- Content of page.html, which has content from child.html within it -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<!-- Scripts from child.html -->
</body>
</html>
答案 0 :(得分:1)
您可以在master.html
模板中创建广告模块,然后可以在page.html
中覆盖这些广告资源,例如child.html
master.html
<!DOCTYPE html>
<html>
<head>
<title>{{ title | default('Hello World') }}</title>
<link rel="stylesheet" type="text/css" href="theme.css">
{% block css %}
{% endblock %}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
{% block javascript_sources %}
{% endblock %}
</head>
<body>
<script>
//default code
</script>
</body>
</html>
page.html中
{% extends "master.html" %}
{% block javascript_sources %}
<script src="my.jquery.plugin.min.js"></script>
{% endblock %}
{% block javascript %}
<script>
$(function(){
console.log('-- page loaded --');
});
</script>
{% endblock %}
child.html
{% extends "page.html" %}
{% block javascript %}
{{ parent() }}
<script>
$(function(){
console.log('-- child loaded --');
});
</script>
{% endblock %}
答案 1 :(得分:0)
好的,对于那些在以后偶然发现这篇文章的人来说,这就是我最终要做的事情:
child.js
的文件。child.html
的相同条件中,将child.js
加载到变量中。$js
转换为twig中的{{ js }}
。 (请务必使用{{ js|raw }}
以避免转义它)在page.html
文件中使用此变量。child.html
,则$js
包含空字符串。