1

我正在尝试使用Reducisaurus Web 服务来缩小 CSS 和 Javascript,但我遇到了一个问题......

假设我在以下位置有两个未缩小的 CSS:

http:/domain.com/dynamic/styles/theme.php?color=red
http:/domain.com/dynamic/styles/typography.php?font=Arial

根据文档,我应该像这样调用 Web 服务:

http:/reducisaurus.appspot.com/css?url=http:/domain.com/dynamic/styles/theme.php?color=red

如果我想一次缩小两个 CSS 文件:

http:/reducisaurus.appspot.com/css?url1=http:/domain.com/dynamic/styles/theme.php?color=red&url2=http:/domain.com/dynamic/styles/theme.php?color=red

如果我想为缓存指定不同的秒数(例如 3600),我会使用:

http:/reducisaurus.appspot.com/css?url=http:/domain.com/dynamic/styles/theme.php?color=red&expire_urls=3600

再次对两个 CSS 文件:

http:/reducisaurus.appspot.com/css?url1=http:/domain.com/dynamic/styles/theme.php?color=red&url2=http:/domain.com/dynamic/styles/theme.php?color=red&expire_urls=3600

现在我的问题是,Reducisaurus 如何知道如何分隔我想要的 URL?它怎么知道这&expire_urls=3600不是我的URL 的一部分?它怎么知道这&url2=...不是 GET 参数url1?我这样做对吗?我需要urlencode我的网址吗?

我查看了源代码,虽然我的 Java 很差,但 BaseServlet.java 文件中的方法acquireFromRemoteUrl()getSortedParameterNames()方法似乎包含了我的问题的答案 - 如果 GET 参数名称包含-或者_应该忽略它们?!

多个&url(n)s呢?

4

2 回答 2

1

以 url 开头的所有内容都被视为新 url,因此您不能将名为 url2 的参数作为 url1 的 get 参数传递。

每个不包含“-”的参数名称都将被视为输入。

所以如果你这样做

...?file1=...&url1=...&max-age=604800,

max-age 不会被视为输入。

然而,

...?file1=...&url1=...&maxage=604800

这里 maxage 将被视为输入。

于 2010-05-04T09:01:50.980 回答
1

是的,在将 URL 作为参数提交给另一个 Web 服务之前,您需要对 URL 进行 URL 编码。

例如

http://google.com

变成

http%3A%2F%2Fgoogle.com

如果您这样做,则不会有像 ?、&、= 等这样的特殊字符在可能混淆 Web 服务的过程中幸存下来。

(不太清楚你的第二个问题是什么,抱歉。)

于 2010-05-04T08:46:49.197 回答