在我开始之前,我应该指出,我绝对没有使用nginx或网络的经验,所以我所做的一切都归功于搜索和尝试不同的解决方案。
我现在遇到了一个问题,我挣扎了一个小时。
我试图在nginx上设置cgit,以便通过子目录(如/git )访问它。问题是,即使我成功地获得了接口加载,css和图像返回404。
当我去192.168.0.12/git的时候,我得到的是:
200 /git/ 192.168.0.12/git/
404 cgit.css 192.168.0.12/git/cgit.css
404 cgit.png 192.168.0.12/git/cgit.png
404 favicon.ico 192.168.0.12/git/cgit.png这是我现在的nginx.conf:
server {
listen 80;
server_name localhost;
root /var/www/html;
location /git {
root /var/www/cgit;
include fastcgi_params;
fastcgi_split_path_info ^(/git/?)(.+)$;
fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi;
fastcgi_param QUERY_STRING $args;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_HOST $server_name;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
location ~* \.(css|png|ico) {
expires 24h;
}
}
location / {
try_files $uri/index.html =404;
}
}和cgitrc:
css=/git/cgit.css
logo=/git/cgit.css
favicon=/git/favicon.ico
cache-root=/var/cache/cgit
remove-suffix=1
virtual-root=/git/
scan-paht=/srv/git/我的猜测是,我需要以某种方式告诉nginx在哪里可以找到这些文件,但我不知道如何做,甚至不知道从哪里开始寻找解决方案。
发布于 2020-02-12 09:37:41
所有这些路径在您的系统上可能是不同的(我在ubuntu上),但是总的想法是一样的!
您可以通过将此添加到您的配置中来做到这一点。
location /cgit-css/ {
alias /usr/share/cgit/;
expires 24h;
try_files $uri =404;
}这将映射您的本地/usr/share/cgit文件夹,其中包括css和其他文件(在ubuntu上!)到cgit-css,然后从配置文件中调用该文件:
css=/cgit-css/cgit.css
logo=/cgit-css/cgit.png
favicon=/cgit-css/favicon.ico
...这是我的完整的nginx配置:
server {
listen 5555;
server_name _;
root /usr/lib/cgit;
location / {
try_files $uri @cgit;
}
location /cgit-css/ {
alias /usr/share/cgit/;
expires 24h;
try_files $uri =404;
}
location @cgit {
index cgit.cgi;
fastcgi_param SCRIPT_FILENAME $document_root/cgit.cgi;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
fastcgi_param HTTP_HOST $server_name;
fastcgi_param PATH_INFO $uri;
fastcgi_param QUERY_INFO $args;
include "fastcgi_params";
}
}和完整的cgitrc
# cgit config
# see cgitrc(5) for details
#
css=/cgit-css/cgit.css
logo=/cgit-css/cgit.png
favicon=/cgit-css/favicon.ico
# Highlight source code with python pygments-based highlighter
source-filter=/usr/lib/cgit/filters/syntax-highlighting.sh
# Format markdown, restructuredtext, manpages, text files, and html files
# through the right converters
about-filter=/usr/lib/cgit/filters/about-formatting.sh
## Search for these files in the root of the default branch of repositories
## for coming up with the about page:
readme=:README.md
readme=:readme.md
readme=:README.mkd
readme=:readme.mkd
readme=:README.rst
readme=:readme.rst
readme=:README.html
readme=:readme.html
readme=:README.htm
readme=:readme.htm
readme=:README.txt
readme=:readme.txt
readme=:README
readme=:readme
readme=:INSTALL.md
readme=:install.md
readme=:INSTALL.mkd
readme=:install.mkd
readme=:INSTALL.rst
readme=:install.rst
readme=:INSTALL.html
readme=:install.html
readme=:INSTALL.htm
readme=:install.htm
readme=:INSTALL.txt
readme=:install.txt
readme=:INSTALL
readme=:install
## List of common mimetypes
mimetype.gif=image/gif
mimetype.html=text/html
mimetype.jpg=image/jpeg
mimetype.jpeg=image/jpeg
mimetype.pdf=application/pdf
mimetype.png=image/png
mimetype.svg=image/svg+xml
mimetype-file=/etc/mime.types
root-title=my git
root-desc=Git Repositories
virtual-root=/
enable-commit-graph=1
enable-index-links=1
enable-log-linecount=1
enable-http-clone=1
enable-index-owner=0
repository-sort=age
case-sensitive-sort=0
# Enable caching of up to 1000 output entries
cache-size=1000
agefile=info/web/last-modified
section-from-path=1
scan-path=/mnt/data/githttps://serverfault.com/questions/994659
复制相似问题