这将与我发现的其他Trac静态资源问题类似(this SO question很好地涵盖),但这似乎不是同一个问题。
我对具有其他Trac项目的服务器进行部分(非root)访问,并且我能够创建自己的Trac站点。服务器具有以下软件版本:
所以我已创建并使用该网站几周,但我无法显示徽标或图标。还有另一个Trac项目我有权访问,并确保我没有遗漏任何明显的东西我比较了两个项目的trac.ini文件。相关部分具有非常相似的设置,例如:
[header_logo]
src = site/my_logo.png
[project]
icon = site/favicon.ico
那些人都坐在他们各自的Trac环境中。 htdocs文件夹:
/
opt/
trac/
trac_env_1/
htdocs/
my_logo.png
favicon.ico
trac_env_2/
htdocs/
my_logo.png
favicon.ico
但是,图片仅显示在一个网站上,而不显示在另一个网站上。在我的网站上,Google Chrome说:
获取https:// {Intranet网址} / trac / {my_trac_env} /chrome/site/my_logo.png 404(未找到)
我尝试过以下所有内容,但都失败了:
site/favicon.ico
更改为/favicon.ico
和/favicon.ico?
(根据Trac wiki的建议)trac-admin deploy .
,将图像复制到htdocs / common,并将trac.ini设置更改为common/my_logo.png
site/my_logo.png
更改为/images/my_logo.png
并在我的trac环境中匹配该文件夹结构。我唯一能想到的是Apache设置,但据我所知它应该处理它在/ opt / trac中可以找到的任何Trac环境。在/etc/httpd/conf.d/trac.conf中,它有:
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /opt/trac
PythonOption TracUriRoot /trac
PythonOption PYTHON_EGG_CACHE /var/trac/egg-cache
</Location>
我认为它使用TracEnvParentDir而不仅仅是TracEnv是重要的一点。
所以,我很茫然。拜托,有人可以帮助我吗?
答案 0 :(得分:0)
Gah,我知道我错过了一些简单的事情。
问题是文件权限。 Apache没有对Trac环境的读取权限,因此简单的chmod -R a+rX /opt/trac/trac_env_2
解决了它。
我想这是“我的静态文件不会出现在Trac中”的另一个答案问题:
site/my_logo.png
会查看trac_env/htdocs
chmod a+rX
以提供仅限目录的执行权限)只需发布此处以防其他人遇到类似问题。