首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你能在你用minify库压缩的.js文件中使用PHP吗?

问你能在你用minify库压缩的.js文件中使用PHP吗?
EN

Stack Overflow用户
提问于 2014-02-27 01:30:12
回答 2查看 545关注 0票数 1

我在一个javascript文件中使用了一些PHP。我还使用了minify库(https://code.google.com/p/minify/)来缩减样式表和javascript。我将script.js的请求重写为script.php,并在script.php中执行此操作(代码是抽象的,因此没有任何意义):

代码语言:javascript
复制
<?php header("Content-Type: application/x-javascript");
$var = 'hi'; ?>
$(document).ready(function() {
     alert('<?php echo $var ?>');
});

当我直接请求script.js时,它可以正常工作。当我将它包含在字符串中时,如下所示:

代码语言:javascript
复制
<script type="text/javascript" src="min/b=javascript&amp;f=script.js"></script>

它给了我一个400的坏请求。我已经在minify配置中设置了调试变量true。没有结果。这是不可能的吗?还是我做错了什么?我找不到关于这个话题的任何其他问题。

EN

回答 2

Stack Overflow用户

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2015-08-06 06:07:21

从技术上讲,如果您使用Minify_Source对象而不是静态文件路径,这是可能的。例如,您可以使用PHP脚本的输出作为输入源来缩小。

文档中提到了has a section on this,并提到了它的局限性。

如果您的脚本的输出针对每个用户或频繁更改,您可能不想这样做。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22048845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档