Skip to content
This repository was archived by the owner on Oct 8, 2021. It is now read-only.

Base tag broken: Images/Links have invalid paths in sub-directory documents. #1508

Closed
jblas opened this issue Apr 22, 2011 · 4 comments
Closed
Assignees
Milestone

Comments

@jblas
Copy link
Contributor

jblas commented Apr 22, 2011

If you use FireFox 4 or any other browser (Chrome) that shows you the href of a link when you hover over it, and you navigate to:

http://jquerymobile.com/test/

then click on "Pages & dialogs", after the new page transitions in, hover over the listview items on the page and see what the browser displays. I'm seeing URLs like this:

http://jquerymobile.com/test//test/docs/pages/docs-pages.html

Notice the "/test//test" in the middle? it should be displaying:

http://jquerymobile.com/test/docs/pages/docs-pages.html

This seems to be due to the fact that we switched to passing in site relative URLs into base.set(). When the base code was originally written, I think it assumed that the path passed in would always be document relative which is why it prepends the HREF passed in with docbase..

@ghost ghost assigned jblas Apr 22, 2011
@scottjehl
Copy link

This url demonstrates that the base tag is no longer correct:
http://jquerymobile.com/test/#/test/docs/about/intro.html

@johnbender
Copy link
Contributor

I took a look at this after Kin mentioned it on Friday, and the naive fix is to check for an absolute path in the hash and just use location.protocol + "//" + location.host for docBase. In the case where there's a relative path (backward compat) we need to do a bit more work.

Mind you this came from a cursory first look.

@johnbender
Copy link
Contributor

I've started work on handling this, and I think Kin is working on documenting the various cases to handle with the base tag but I thought I would get my own notes down here so we can compare. To start, handling the dynamic base tag:

base tags need to be set in 3 cases

  1. initial load - where there is no value available from an anchor or form action to tell us what the base href value should be
  2. loading a page from a page relative url - the relative path must be stripped of trailing file information and applied to the current host and pathname
  3. loading a page from a host relative url - the path must be stripped of trailing file information and applied to the current host.

@jblas
Copy link
Contributor Author

jblas commented Apr 25, 2011

I started documenting the use cases we need to handle here:

https://github.com/jquery/jquery-mobile/wiki/Refactor:-navigation-paths

@ghost ghost assigned johnbender and jblas May 3, 2011
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants