1

大家好,

我正在开发模式下运行 Django 应用程序。我已将静态文件收集到项目中的 /static/images/ 目录中。

在我的模板中,我尝试链接示例图像:

<img src="{{ STATIC_URL }}items/no_image.jpeg"/>
    {{ STATIC_URL }}items/no_image.jpeg

(底线是出于调试目的而打印)

图片显示链接断开,底行打印出正确的目录:

 /static/items/no_image.jpeg

在我的项目中,我确实有 /static/items/no_image.jpeg 文件。

在我的 settings.py 中,我有:

STATIC_ROOT = os.path.dirname(__file__)+'/static/'
STATIC_URL = '/static/'

有人可以帮忙吗?

谢谢 !

4

4 回答 4

3

发现了问题。问题是我使用了错误的目录。STATIC_URL 应该是 /static/ 时被命名为 /site_media/。改变它,现在一切都像水一样清晰......

于 2011-12-13T22:28:44.800 回答
2

我认为这是斜线问题。尝试

STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static')
于 2011-12-12T13:20:56.580 回答
0

可能你对静态文件的收集有误解。在开发过程中无需使用collectstatic命令将它们收集到目标目录中。这是为了部署而完成的。

在开发期间,您只需添加 django.contrib.staticfiles 应用程序,然后按照此处所述指定 STATIC_ROOT、STATIC_URL 和 STATICFILES_DIRS 。

然后,在您的基本 urlconf 中,您需要为静态文件添加 url 规则,如此处所述。这就是“开发模式”。

在生产模式下,您collectstatic首先运行命令,然后将生成的目录推送到运行 apache(或 nginx 或其他)的服务器,并让他在 www.yoururl.com/static/ 下提供该目录

关于在 django 中处理静态文件的整个故事几乎让我发疯……即使在今天,当我试图记住它或解释它时,我也不得不思考几分钟。:-/ 如果它有时会让您感到困惑,请不要担心。

于 2011-12-12T13:47:06.777 回答
0

我想我最近遇到了类似的问题。尝试将图像直接放在 /static/ 而不是 /static/items/ 中。如果您希望能够直接链接到 /static/items/sample.jpg 您需要在 SETTINGS 中将 /static/items/ 添加到您的 STATIC_ROOT

于 2011-12-13T18:24:26.037 回答