如何正确设置Trac背后的Nginx?

运行tracd并直接访问它的网站工作正常。

但是,我希望它位于nginx后面,可访问example.com/trac/访问。

为此,我对nginxconfiguration进行了以下更改:

 location /trac/ { proxy_pass http://127.0.0.1:3456/; # tracd listens there proxy_redirect default; proxy_set_header Host $host; } 

访问example.com/trac/现在向我展示了一个破损的Trac主页,其中没有任何CSS,JS或图像文件被加载,因为所有其他请求都被发送到example.com/css而不是example.com/trac/css

我怎样才能解决这个问题?

我如何让Trac意识到这是在example.com/trac/ ,而不是example.com/

谢谢!

编辑:我已经设置了以下trac.ini设置,并重新启动tracd ,但问题依然存在:

 base_url = https://example.com/trac/ use_base_url_for_redirect = true 

看来定义base_urluse_base_url_for_redirect不再起作用。

而是直接运行tracd时使用--base-path选项。

所以现在我运行tracd像这样:

 tracd /path/to/trac/dir --base-path=trac 

而Nginx的conf变得更简单:

 location /trac/ { proxy_pass http://127.0.0.1:3456/trac/; proxy_redirect default; proxy_set_header Host $host; } 

这似乎工作。