diff --git a/pywb/rewrite/rewrite_content.py b/pywb/rewrite/rewrite_content.py index 6ae183a5..ea359911 100644 --- a/pywb/rewrite/rewrite_content.py +++ b/pywb/rewrite/rewrite_content.py @@ -156,7 +156,12 @@ class RewriteContent(object): text_type, stream) - rewriter_class = rule.rewriters[text_type] + # for proxy mode: use special js_proxy rewriter + # which may be none rewriter + custom rules (if any) + if text_type == 'js' and not urlrewriter.prefix: + rewriter_class = rule.rewriters['js_proxy'] + else: + rewriter_class = rule.rewriters[text_type] # for html, need to perform header insert, supply js, css, xml # rewriters diff --git a/pywb/rewrite/rewriterules.py b/pywb/rewrite/rewriterules.py index d8b2d280..4c8d10c6 100644 --- a/pywb/rewrite/rewriterules.py +++ b/pywb/rewrite/rewriterules.py @@ -45,8 +45,11 @@ class RewriteRules(BaseRule): # set js class, using either default or override from config self.rewriters['js'] = config.get('js_class', js_default_class) + self.rewriters['js_proxy'] = JSNoneRewriter + # add any regexs for js rewriter - self._add_custom_regexs('js', config) + self._add_custom_regexs('js', 'js_regexs', config) + self._add_custom_regexs('js_proxy', 'js_regexs', config) # cookie rewrite scope self.cookie_scope = config.get('cookie_scope', 'default') @@ -57,12 +60,12 @@ class RewriteRules(BaseRule): self.req_cookie_rewrite = req_cookie_rewrite - def _add_custom_regexs(self, field, config): - regexs = config.get(field + '_regexs') + def _add_custom_regexs(self, rw_id, field, config): + regexs = config.get(field) if not regexs: return - rewriter_cls = self.rewriters[field] + rewriter_cls = self.rewriters[rw_id] #rule_def_tuples = RegexRewriter.parse_rules_from_config(regexs) parse_rules_func = RegexRewriter.parse_rules_from_config(regexs) @@ -71,4 +74,4 @@ class RewriteRules(BaseRule): rule_def_tuples = parse_rules_func(urlrewriter) return rewriter_cls(urlrewriter, rule_def_tuples) - self.rewriters[field] = extend_rewriter_with_regex + self.rewriters[rw_id] = extend_rewriter_with_regex