English 中文(简体)
为什么我在本地上传产品图片时会在Satchmo中获得绝对URL?
原标题:
  • 时间:2009-04-09 02:24:18
  •  标签:

我正在使用Django和Satchmo进行一些本地开发。当我通过管理员本地上传产品图像时,图像的路径显示为绝对路径,并带有驱动器号,而不是正确的相对路径。

更奇怪的是,Satchmo将原始图像和它生成的缩略图保存在me/media/目录和/media/images/文件夹中,后者是我希望它们去的地方。

相关设置如下:

# path relative to the settings.py file
DIRNAME = os.path.abspath(os.path.dirname(__file__).decode( utf-8 ))

MEDIA_ROOT = os.path.join(DIRNAME,  media )
MEDIA_URL =  http://localhost:8000/ 
ADMIN_MEDIA_PREFIX =  /media/ 

我已经检查了local_settings.py文件,其中没有提到单词media,所以我确信没有设置覆盖。

如果有帮助的话,我使用的是Windows,但我使用的路径都是正确的unix表示法。

最佳回答

事实证明,这个问题是settings.py文件中斜线方向的问题。

通常,我会在settings.py文件中创建一个relative_path()函数,以便轻松设置:

MEDIA_ROOT = absolute_path( media )

我使用的Satchmo版本鼓励使用DIRNAME设置:

DIRNAME = os.path.abspath(os.path.dirname(__file__).decode( utf-8 )

问题是,使用这种技术,我的MEDIA_ROOT被设置为这样:

MEDIA_ROOT = os.path.join(DIRNAME,  media )

但这是使用Windows反斜杠而不是Unix正斜杠。我已经解决了:

MEDIA_ROOT = os.path.join(DIRNAME,  media ).replace( \ ,  / )
问题回答

这是一个仅适用于Windows的错误。我正在Windows上开发一个Satchmo应用程序,它可以做到这一点,但当我在Linux上部署时,它可以正常工作。当我在Windows盒子上进行测试时,我只需要进入数据库并编辑那里的路径。





相关问题
热门标签