【问题标题】:Django static files not loading (production)Django 静态文件未加载(生产)
【发布时间】:2014-06-23 16:28:14
【问题描述】:

在服务器上运行项目时看不到我的静态文件(在我的桌面上没问题)。

当我在浏览器上查找图片路径时,我有

/static/app_name/images/image_name

我的图片存储在

www.mydomain.com/xxx/xxx/static/app_name/images/image_name

我尝试从

调整 settings.py
'/static/'

'/xxx/xxx/static/'

但它似乎没有效果,因为我的浏览器上的图像路径仍然是

/static/app_name/images/image_name and not /xxx/xxx/static/app_name/images/image_name

我错过了什么吗?

感谢您的帮助!

【问题讨论】:

  • this answer 中提到的常见原因 - 你排除了这些吗?
  • 当我有能力的时候我已经尝试了所有这些......但问题似乎正如 S.Ali 指出的那样......但我在 settings.py 中所做的更改并没有得到反映在我的浏览器中的图像路径中...
  • 更改后重新启动服务器。那成功了吗!
  • @user2950162 将路径更改为我建议的对您有用吗?
  • 是的,完美!谢谢!

标签: django


【解决方案1】:

更改 STATIC_URL = '/static/' 只会更改 URL,而不是实际提供图像的位置。

确保STATIC_ROOT 指向/path/to/www.mydomain.com/xxx/xxx/static/ 并确保您正在在您的settings.py 中使用硬编码路径,不是类似于

os.path.join(os.path.dirname(__file__, 'static'))

然后在你的模板中

<!-- either -->
<img src="{{ STATIC_URL }}img/my_image.png" />
<!-- or -->
{% load static %}
<img src="{% static 'img/my_image.png' %}" />

另外,请确保您正在运行 python manage.py collectstatic 以收集所有应用中的所有静态文件,并将它们放置在 STATIC_ROOT 目录中。

还有

根据您使用的服务器,确保您有一个指向静态目录的路径别名。例如,在您的 /sites-available/www.mydomain.com conf 中的 Apache 中,确保存在此 Alias 指令

<VirtualHost *:80>
    ...
    Alias /static /path/to/www.mydomain.com/xxx/xxx/static/
    ...
</VirtualHost>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-17
    • 2015-08-22
    • 2019-08-31
    • 2014-11-12
    • 2021-04-03
    • 2012-01-21
    • 2016-11-06
    相关资源
    最近更新 更多