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

Re: Static gitweb content when using pathinfo

From
Jakub Narebski <jnareb@gmail.com>
Date
Apr 14, 2012, 17:19 UTC
Message-ID
<201204141919.19285.jnareb@gmail.com>
In-Reply-To
<201204052314.10606.jnareb@gmail.com>
On Thu, 5 Apr 2012, Jakub Narebski wrote:
Show 21 quoted lines
> On Thu, 5 Apr 2012, José María Escartín Esteban wrote:
> > Hi,
> > 
> > I'm running gitweb in a server.example.com/gitweb/ scenario.  If I don't enable
> > pathinfo everything works fine, but when I enable pathinfo the static content
> > stops showing up in the browser.
> > 
> > I'm not an HTML or perl expert, but I think that this may be due to a missing
> > slash in the construction of the base tag:  Using the upstream script I am getting
> > 
> > <base href="http://server.example.com/gitweb" />
> > 
> > and no static content.  Once I tune the script to add a final slash to the url
> > 
> > <base href="http://server.example.com/gitweb/" />
> > 
> > the static content shows up again.
>
> How do you deploy gitweb, what is your web server configuration, and
> what is the URL of main gitweb page (using placeholders like 'example.com'
> or 'foo')?
Ping?
[...]
Show 9 quoted lines
> There might be problem if you configured your web server to serve gitweb
> using it as a handler for subdirectory, so the script name does not need
> to appear in URL, e.g.
> 
>   http://localhost/cgi-bin/gitweb
> 
> which would require the following base element
> 
>   <base href="http://localhost/cgi-bin/gitweb/" />
[...]
Show 23 quoted lines
> > Once I tune the script to add a final slash to the url
> > 
> > <base href="http://server.example.com/gitweb/" />
> > 
> > the static content shows up again.
> 
> By "tune the script" do you mean editing gitweb.cgi, or adding setting
> $base_url to gitweb configuration file, see gitweb.conf(5):
> 
>   $base_url
>      Base  URL  for  relative  URLs  in  pages generated by gitweb, (e.g.
>      $logo, $favicon, @stylesheets if they are relative URLs), needed and
>      used  <base href="$base_url"> only for URLs with nonempty PATH_INFO.
>      Usually gitweb sets its value correctly, and there is no need to set
>      this  variable,  e.g.  to $my_uri or "/". See $per_request_config if
>      you need to override it anyway.
> 
> You can e.g. put
> 
>   $base_url .= '/' unless ($base_url =~ m!/$!);
> 
> in the gitweb configuration file to ensure that it ends with '/', whatever
> it is.

By the way, would the following proposed addition to gitweb.conf(5) manpage would help your situation?

-------- >8 ---------- >8 ---------
Subject: [PATCH/RFC] gitweb.conf(5): When to set $base_url

Add a paragraph to description of $base_url variable in gitweb.conf(5) manpage explaining when and why one might need to set it.

Based-on-report-by: José María Escartín Esteban <ripero84@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
 Documentation/gitweb.conf.txt |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt
index 7aba497..a2a6ddf 100644
--- a/Documentation/gitweb.conf.txt
+++ b/Documentation/gitweb.conf.txt
@@ -559,6 +559,20 @@ $base_url::
 	PATH_INFO.  Usually gitweb sets its value correctly,
 	and there is no need to set this variable, e.g. to $my_uri or "/".
 	See `$per_request_config` if you need to override it anyway.
++
+You would need to set this variable when using gitweb as a directory
+handler and using path_info-based URLs.  For example if your web
+server is set up in such way that full path to browse repositories is
+`http://git.example.com/gitweb` and static files are served from
+'/gitweb/static' directory with default values (e.g. `$logo` is
+`static/git-logo.png`), then you would need to set `$base_url` to
+(for example):
++
+----------------------------------------------------------------------
+our $base_url = "http://git.example.com/gitweb/";
+----------------------------------------------------------------------
++
+The trailing slash is required!
 
 
 CONFIGURING GITWEB FEATURES
-- 
1.7.9
Previous: Jakub NarebskiNext: José María Escartín Esteban
Message 3 of 6 in “Static gitweb content when using pathinfo”
  1. José María Escartín EstebanApr 5, 2012
  2. Jakub NarebskiApr 5, 2012
  3. Jakub NarebskiApr 14, 2012
  4. José María Escartín EstebanApr 16, 2012
  5. Jakub NarebskiApr 17, 2012
  6. José María Escartín EstebanApr 24, 2012

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.