I want to allow a web server to handle an HTML import with a redirect and 
am running into an issue in the polyfill.

Support a page wants to include a component at /old/stuff/test-element.html:

<link rel="import" href="/old/stuff/test-element.html">

The server wants to fulfill this request with a redirect that points to 
/new/test-element.html. The latter file contains the desired element 
definition. When the above import is requested, the browser silently gets 
the 301/302 redirect to /new/test-element.html, retrieves that file, and 
goes about its business.

This mostly works, but I've hit a snag when the referenced 
test-element.html file includes a relative path. Suppose the element itself 
wants to load a script at "../script.js". Under native HTML imports, this 
relative path is applied to the redirected location, 
/new/test-element.html, resulting in the final path of /script.js. For my 
purposes, that's exactly what is expected and desired.

Under the polyfill, however, the JavaScript layer doesn't know about the 
redirect, so it tries to apply the relative path to the original location. 
This produces the final path of "/old/stuff/script.js". In my particular 
redirect use case, this causes things to break. The same thing goes for any 
call within the component to this.resolvePath(). It's my understanding 
there's no way at the XMLHttpRequest level for the polyfill to know about 
the redirect, so there's no way for it to handle paths relative to the new 
(redirected) location.

If there's no existing way to finesse the problem, I was wondering if the 
HTML Imports polyfill could define some convention for handling this. 
Suppose the server included in the response for the redirected file an 
additional header field ("Polyfill-Import-Location: 
/new/test-element.html") indicating the location that should be used for 
polyfilling access to relative paths found in that file. This would be a 
hint for the HTML Imports polyfill, in much the same way that 
polyfill-next-selector, etc., are hints to the Shadow DOM polyfill.

Follow Polymer on Google+: plus.google.com/107187849809354688692
--- 
You received this message because you are subscribed to the Google Groups 
"Polymer" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/polymer-dev/4a515d09-ca29-4bd6-8ccb-4d6171857da3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to