我在一个javascript文件中使用了一些PHP。我还使用了minify库(https://code.google.com/p/minify/)来缩减样式表和javascript。我将script.js的请求重写为script.php,并在script.php中执行此操作(代码是抽象的,因此没有任何意义):
<?php header("Content-Type: application/x-javascript");
$var = 'hi'; ?>
$(document).ready(function() {
alert('<?php echo $var ?>');
});当我直接请求script.js时,它可以正常工作。当我将它包含在字符串中时,如下所示:
<script type="text/javascript" src="min/b=javascript&f=script.js"></script>它给了我一个400的坏请求。我已经在minify配置中设置了调试变量true。没有结果。这是不可能的吗?还是我做错了什么?我找不到关于这个话题的任何其他问题。
发布于 2014-02-27 07:17:27
您应该将该变量与js代码分开发送,例如,在配置json文件中,或者在html中的脚本标记中,等等。
之后,您的脚本将不再依赖于php变量,因此它们将是静态的和可压缩的。
一些解释:
好的,首先。Php在服务器机器上运行,javascript在客户端浏览器上运行。这些是完全不同的机器,不同的平台。我希望你能理解。
为了维护(开发、调试等)代码,我们必须组织它。php和javascript代码的混合使得事情变得非常混乱。如果你想调试一个php特性,你需要阅读php代码,而不是js代码,反之亦然。它被称为噪声代码,在你的js代码中有php噪声,或者在你的php代码中有js噪声。为了避免简单的语言,如html,我们使用模板,通过复杂的语言,如javascript,我们应该创建一个应用程序接口,并通过该接口,客户端js和服务器端php应用程序进行通信,发送数据等。它很好,因为它是受控的,有组织的,等等,我们总是知道数据来自哪里,如果你想找到bug的来源或了解当前代码是如何工作的,这是非常重要的。从代码的大小来看,这是无关紧要的,但是超过一百行你就会感觉到不同之处……
你可以找到几个关于这方面的问题,我认为你应该阅读这个:https://softwareengineering.stackexchange.com/questions/126671/is-it-considered-bad-practice-to-have-php-in-your-javascript
发布于 2015-08-06 06:07:21
从技术上讲,如果您使用Minify_Source对象而不是静态文件路径,这是可能的。例如,您可以使用PHP脚本的输出作为输入源来缩小。
文档中提到了has a section on this,并提到了它的局限性。
如果您的脚本的输出针对每个用户或频繁更改,您可能不想这样做。
https://stackoverflow.com/questions/22048845
复制相似问题