2017-03-04 57 views
0

我想將靜態文件放在任何應用程序之外的文件夾中。這是文件結構。Django沒有找到與特定應用程序無關的靜態文件

 mysite 
     |---assets 
      |---css 
      |---js 
      |---images 
     |---companyinfo 
      |---views.py 
      |---models.py 
      |---templates 
        |---index.html 
        |---recruit.html 
      |--- .... 
     |---mysite 
      |---urls.py 
      |---settings.py 
      |--- .... 
     |---manage.py 
     |--- .... 

settings.py如下所示。

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
STATIC_URL = '/assets/' 
STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "assets"), 
] 

這是我如何調用模板文件的靜態文件,mysite的文件夾下

<link href="assets/css/theme-style.css" rel="stylesheet"> 

urls.py如下所示。我沒有在companyinfo文件夾下定義urls.py。

from companyinfo import views as civiews 

urlpatterns = [ 
url(r'^$', civiews.index, name='index'), 
url(r'^recruit/$', civiews.recruit, name='recruit'), 
] 

views.py只是呈現html頁面的兩個函數。這兩個html頁面中的靜態文件的url是相同的。
問題是索引頁面可以很好地加載所有的css和js文件,但recruit頁面找不到這些文件。問題可能是什麼?我正在使用Django1.10。
在此先感謝!

+0

這是奇怪的。請顯示,你如何從模板中調用靜態文件。 –

+0

謝謝。我已經添加了如何在模板中調用靜態文件。 – lingyan

+0

如果我的回答幫助你接受它,請。這是一個在StackOverflow中的好習慣! –

回答

1

請更改此:

<link href="assets/css/theme-style.css" rel="stylesheet">

這樣:

<link href="{% url 'css/theme-style.css %}" rel="stylesheet">

+0

謝謝!有用。另一個相關的問題是我的一個js文件也有一個硬編碼路徑:'var PLUGINS_LOCALPATH ='./assets/plugins /';' 如何將它更改爲與模板文件類似的路徑? – lingyan

+0

你不能!唯一的解決方案是在主HTML中創建一個js對象,將URL傳遞給下面的js文件。但對於這樣的問題,你應該更好地創建一個單獨的! –

相關問題