1

我正在开发一个项目,我需要在 HTML 头部部分中直接包含大约 10-15 个 .js 文件,例如

<script type="text/javascript" src="http://localhost:9020/website1/wa/min/soundmanager2.js,vars.js,utils/md5.js,utils/utils.js></script>

我可以正确提供参考的方式是什么

我需要引用的文件位于同一层次结构中,例如

1.....2,3 2........4,5 3........6,7

我需要参考 1,4,7 请帮忙

我在某处读过这个方法是什么?

<script type="text/javascript" src="http://localhost:9020/wordplus/root/child/?b=scripts&f=soundmanager2.js,vars.js,utils/md5.js,utils/utils.js></script>
4

5 回答 5

2

您发布的示例看起来与 minify PHP 库的查询字符串接口完全一样:http: //github.com/mrclay/minify

使用它,您以时尚的方式使用它<script src="min/?b=path&f=script1.js,script2.js,ui/script3.js"></script>path您希望它在哪里查找脚本的 Web 根目录的路径在哪里。

我以前用过它,我发现它非常有效。它连接、缩小、缓存和服务于 JS 和 CSS。

我确信还有其他库可以达到相同的效果,或者您可以创建一个构建脚本来连接和缩小所有脚本,然后在单个脚本标记中将单个 JS 文件部署到您的站点。

于 2012-07-15T17:21:10.453 回答
0

无法在单个<script>元素中加载多个 javascript 文件。

对于要引用的每个脚本,您必须有一个单独的<script>元素。

<script type="text/javascript"
  src="http://localhost:9020/wordplus/root/child/?b=scripts&f=soundmanager2.js"></script>
<script type="text/javascript"
  src="http://localhost:9020/wordplus/root/child/?b=scripts&f=vars.js"></script>
于 2012-07-15T16:32:38.210 回答
0

我想你会从动态加载外部 javascript 文件中得到你需要的东西:

http://ntt.cc/2008/02/10/4-ways-to-dynamically-load-external-javascriptwith-source.html

http://www.javascriptkit.com/javatutors/loadjavascriptcss.shtml

于 2012-07-15T16:46:17.080 回答
0

您发布的第二行从服务器动态请求脚本。请求的b参数告诉它你想要脚本,f参数告诉服务器你想要哪些文件。然后它将这些连接到一个文件中并将其发送回用户代理。你需要服务器端脚本来处理这个;它不是内置在 URL 规范中的东西。

http://localhost:9020/wordplus/root/child/
b=scripts
f=soundmanager2.js,vars.js,utils/md5.js,utils/utils.js

最简单的解决方案是每个文件只有一个脚本标签,因为它可以让您利用缓存:

<script src="http://localhost:9020/wordplus/root/child/soundmanager2.js"></script>
<script src="http://localhost:9020/wordplus/root/child/vars.js"></script>
<script src="http://localhost:9020/wordplus/root/child/utils/md5.js"></script>
<script src="http://localhost:9020/wordplus/root/child/utils/utils.js"></script>
于 2012-07-15T16:54:22.850 回答
0

另一种解决方案是使用一些 JavaScript 构建器来加入所有文件,只生成一个。这种方法的优点是您的结果文件将被“压缩”(缩小)。一些建设者:

于 2012-07-15T17:07:33.583 回答