【问题标题】:Heroku Django app static files not serving (error OSError: [Errno 2])Heroku Django 应用程序静态文件未提供(错误 OSError:[Errno 2])
【发布时间】:2014-10-25 03:56:59
【问题描述】:

我用 Django 用 Python 开发了一个应用程序,我刚刚将它部署在 heroku 服务器上。

我的 settings.py 文件有这样的内容:

 PROJECT_PATH = os.path.dirname(os.path.abspath(__file__))
 STATIC_ROOT = 'staticfiles'
 STATIC_URL = '/static/'

 STATICFILES_DIRS = (
      os.path.join(PROJECT_PATH, 'static'),
 )


  STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
    #'django.contrib.staticfiles.finders.DefaultStorageFinder',
   )

当我运行这个命令时:

heroku run python manage.py collectstatic --noinput

我收到以下错误:

  OSError: [Errno 2] No such file or directory: '/app/nameOfApp/static'

模板中的 url 指向之前存储的文件,例如模板文件中具有此类 url 的 CSS 和 javascript 文件:

  <script type="text/javascript" src="{% static "javascripts/jquery.min.js" %}" ></script>

服务正常,但通过管理面板上传的新文件与静态文件夹中的先前文件未存储在同一位置,即新上传的文件应与其他静态文件存储在同一文件夹中,例如CSS 和 JavaScript,

问题: 那么我应该如何修改settings.py文件才能正常工作呢?

【问题讨论】:

  • 上传的文件?媒体设置呢?
  • @rajasimon MEDIA_ROOT 和 MEDIA_URL 是空的,我应该放什么?顺便说一句,当我在本地运行代码时它们也是空的,但它曾经在本地工作

标签: django heroku django-staticfiles static-files


【解决方案1】:

Media Root 用于保存用户上传文件的目录的绝对文件系统路径。

Example: "/var/www/example.com/media/"

媒体 URL 用于处理从媒体根目录提供的媒体文件。

另一个重要的不是you will need to configure these files to be served in both development and production

urls.py 中添加这一行就可以了

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

【讨论】:

  • 我在模板中的照片 url 有这样的 src src="/static/{{ image.image.url }}" 并且在模型中模型有这样的属性 image = models.ImageField(upload_to= "images/subFolder") MEDIA_ROOT 和 MEDIA_URL 的内容应该是什么才能让它们正常工作?
  • MEDIA_URL = '/media/' 并将其设置为 MEDIA_ROOT = os.path.join(PACKAGE_ROOT, "site_media") –
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-23
  • 2017-10-27
  • 2012-12-03
  • 2020-09-11
  • 2013-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多