From: Jakub Narebski <jnareb@gmail.com>
To: "José María Escartín Esteban" <ripero84@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Static gitweb content when using pathinfo
Date: Thu, 5 Apr 2012 23:14:09 +0200 [thread overview]
Message-ID: <201204052314.10606.jnareb@gmail.com> (raw)
In-Reply-To: <4F7DA413.2020502@gmail.com>
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.
>
> Maybe I'm doing something wrong (am I?), and possibly this can be solved from
> the web server side, but maybe it also makes some sense to include in the script
> some check that the url used in the base tag ends with a slash. In that case,
> given my lack of perl skills, I would be really grateful if somebody implemented it.
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')?
When I am running gitweb, it uses http://localhost/cgi-bin/gitweb/gitweb.cgi
URL, and BASE element for path_info is
<base href="http://localhost/cgi-bin/gitweb/gitweb.cgi" />
Note that last component of 'href' attribute of base element is the
basename of script, which according to HTML 4.01[1] and RFC 3986[2]
is removed[3]
o return a string consisting of the reference's path component
appended to all but the last segment of the base URI's path (i.e.,
excluding any characters after the right-most "/" in the base URI
path, or excluding the entire base URI path if it does not contain
any "/" characters).
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/" />
Gitweb would have to distinguish those two cases somehow, and either add
or not add trailing slash '/'.
[1]: http://www.w3.org/TR/html401/struct/links.html#h-12.4
[2]: http://tools.ietf.org/html/rfc3986#section-5.2
[3]: http://tools.ietf.org/html/rfc3986#section-5.2.3
> 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.
HTH
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2012-04-05 21:14 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-05 13:54 Static gitweb content when using pathinfo José María Escartín Esteban
2012-04-05 21:14 ` Jakub Narebski [this message]
2012-04-14 17:19 ` Jakub Narebski
2012-04-16 15:18 ` José María Escartín Esteban
2012-04-17 12:30 ` Jakub Narebski
2012-04-24 7:01 ` José María Escartín Esteban
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201204052314.10606.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=ripero84@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).