2015-09-27 105 views
0

我正在使用基於django-cms的網站,但遇到了靜態文件的問題。正如我打算將站點部署到OpenShift一樣,我使用django示例來構建站點(https://github.com/openshift/django-example)。這樣,我結束了我的Django項目的下列整體結構:OpenShift的Django cms項目。在哪裏放置靜態文件?

  • ROOT_FOLDER

    • WSGI

      • 媒體
      • 靜態
      • MY_PROJECT

        • 程序my_app
        • 模板

所以你看,這是從標準的Django目錄結構略有不同。 Django文檔(https://docs.djangoproject.com/en/1.8/howto/static-files/)已經告訴我下面的:

  1. 包含在INSTALLED_APPS django.contrib.staticfiles:完成
  2. 定義靜態URL,例如STATIC_URL ='/ static /':完成
  3. 使用靜態模板標記來引用靜態文件。 {%靜態 「程序my_app/myexample.jpg」 %}:完成

此外,靜態根被定義爲

STATIC_ROOT = os.path.join(WSGI_DIR, '靜態')

WSGI_DIR指向名爲wsgi的文件夾。

當我嘗試從我的基本模板中引用靜態文件時,我一直在使用Debug = True的開發環境中獲取404s。我曾試圖將它們放置在沒有運氣以下位置:

/WSGI /靜態/

/WSGI /靜態/ my_app應用/

/WSGI/MY_PROJECT /靜態/

/WSGI/MY_PROJECT /靜態/ my_app應用/

/WSGI/MY_PROJECT/my_app應用/靜態/

/WSGI/MY_PROJECT/my_app應用/靜態/ my_app應用/

我應該在哪裏放置靜態文件,並且配置正確?

+0

您運行過'./manage.py collectstatic'嗎? – GwynBleidD

+0

我是否需要在dev中使用'Debug = True'來做到這一點?我正在討論的靜態文件是一些自定義文件,它們被手動放置在靜態文件夾中,因此沒有任何東西可以收集。無論如何,我嘗試運行collectstatic並且它沒有區別(它只是從我安裝的所有應用程序中收集靜態文件,這是沒有必要的,因爲他們已經工作得很好) – ebug

回答

0

我發現my_app不在INSTALLED_APPS列表中(顯然這不是我從django-example得到的代碼結構的一部分)。當我將應用程序添加到列表中時,它工作正常。靜態文件的正確位置:/wsgi/my_project/my_app/static/my_app/