git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCHv4] gitweb: make static files accessible with PATH_INFO

From
Jakub Narebski <jnareb@gmail.com>
Date
Jan 28, 2009, 01:47 UTC
Message-ID
<200901280247.25317.jnareb@gmail.com>
In-Reply-To
<7vocxsz19e.fsf@gitster.siamese.dyndns.org>
On Wed, 28 Jan 2009, Junio C Hamano wrote:
> Giuseppe Bilotta <giuseppe.bilotta@gmail.com> writes:
> 
> > When PATH_INFO is defined,
I other words: when using PATH_INFO gitweb URL
> > static files such as the default CSS or the 
> > shortcut icon are not accessible beyond the summary page (e.g. in
> > shortlog or commit view).

To be more exact: if static files, such as the default CSS (and also other stylesheets, if defined), the gitweb favicon / shortcut icon, or the gitweb logo locations (URIs) are defined using relative URL with relative path (and default Makefile rule to generate gitweb.cgi uses basenames like 'gitweb.css', which are relative paths) _THEN_ those static files are not accessible beyond 'summary' and projects list view (e.g. in 'shortlog' or 'commit' view).

> >
> > Fix this by adding a <base> tag pointing to the script's own URL.
Which defines base URL for all relative links in gitweb.

/Note that this makes the document hierarchy non-portable, but I don't think we care.../

Show 16 quoted lines
> >
> > Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
> > ---
> >  gitweb/gitweb.perl |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> >
> > diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> > index 931db4f..55e3081 100755
> > --- a/gitweb/gitweb.perl
> > +++ b/gitweb/gitweb.perl
> > @@ -2901,6 +2901,11 @@ sub git_header_html {
> >  <meta name="robots" content="index, nofollow"/>
> >  <title>$title</title>
> >  EOF
> > +# the stylesheet, favicon etc urls won't work correctly with path_info unless we
> > +# set the appropriate base URL

+# the stylesheet, favicon, etc URLs won't work correctly with path_info, +# unless we set the appropriate base URL

By the way, I think those comments should be indented aligned to accompanying code, but this is issue of separate whitespace cleanup, independent of the issue this commit tries to solve.

Show 6 quoted lines
> > +	if ($ENV{'PATH_INFO'}) {
> > +		print "<base href=\"$my_url\" />\n";
> > +	}
> 
> Perhaps this is a stupid question, but is $my_url already safe to include
> in the output without any further quoting at this point in the codepath?

Hmmmm... to be safe we probably should use either esc_url($my_url) here (like in git_feed subroutine).

-- 
Jakub Narebski
Poland
Previous: Junio C HamanoNext: Giuseppe Bilotta
Message 3 of 4 in “[PATCHv4] gitweb: make static files accessible with PATH_INFO”
  1. Giuseppe BilottaJan 28, 2009
  2. Junio C HamanoJan 28, 2009
  3. Jakub NarebskiJan 28, 2009
  4. Giuseppe BilottaJan 28, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.