Trac徽标和favicon 404

时间:2014-06-12 14:36:12

标签: trac mod-python

这将与我发现的其他Trac静态资源问题类似(this SO question很好地涵盖),但这似乎不是同一个问题。

我对具有其他Trac项目的服务器进行部分(非root)访问,并且我能够创建自己的Trac站点。服务器具有以下软件版本:

  • Python 2.7
  • Trac 1.0
  • mod_python 3.3.1

所以我已创建并使用该网站几周,但我无法显示徽标或图标。还有另一个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(未找到)

我尝试过以下所有内容,但都失败了:

  • 将[header_logo]内的宽度和高度设置为正确的尺寸
  • 将与其他项目相同的完全相同的图像复制到我的项目
  • 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环境中匹配该文件夹结构。
  • 创建一个htdocs / site /文件夹并为其添加徽标(我知道,这是其他人做错了什么,但我在这里碰到了我的头。)

我唯一能想到的是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是重要的一点。

所以,我很茫然。拜托,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

Gah,我知道我错过了一些简单的事情。

问题是文件权限。 Apache没有对Trac环境的读取权限,因此简单的chmod -R a+rX /opt/trac/trac_env_2解决了它。

我想这是“我的静态文件不会出现在Trac中”的另一个答案问题:

  1. 不要在Trac环境中创建名为“site”的实际文件夹; site/my_logo.png会查看trac_env/htdocs
  2. 确保您的服务器知道在哪里可以找到您的Trac环境。 mod_python和mod_wsgi设置都很容易找到。
  3. 确保您的服务器具有对特定Trac环境的读取权限(chmod a+rX以提供仅限目录的执行权限)
  4. 只需发布此处以防其他人遇到类似问题。