Re: [問題] django static file cashed

作者: tytyty (tytyty)   2015-10-11 13:55:02
※ 引述《sean72 (.)》之銘言:
: 1
: 我修改static file之後 ex map.js
: 甚至我從static_root移除了map.js
: 瀏覽器卻還是顯示之前的map資訊
: 請問是誰(django dev server or web browser?) cach了這些static files?
如果您的 STATIC_ROOT 和 STATIC_URL 路徑不同,那您刪 STATIC_ROOT 裡的檔案
大概不太會有影響。您可以用 Chrome 的 Dev Tools 裡的 Network 標籤,找到
map.js 那個 request 然後看一下 Size 這個欄位,如果是從 cache 他會說。
: 2
: 每次修改static file之後都還要執行collectstatic
: 之後再跑runserver 這樣實在很麻煩
: 請問大家都是如何做static file修改?
collectstatic 在 deploy 之前才用。在那之前,static files 都在 app 裡面的
static 資料夾,STATIC_URL 設成 '/static/',這樣您檔案馬上改就馬上用。
等到您的扣要推上線之前,跑 collectstatic ,然後從 STATIC_ROOT 把檔案移到
您最喜愛的 CDN (例如 AWS CloudFront),然後改 STATIC_URL,把他指到您的 CDN,
這樣應該就妥當了。對了,第三題記得要用{% static '....' %}。
: 3
: 即使我使用了{% load staticfiles %}
: 我是否仍然可以使用
: <link rel="icon" href="../../map.js"> 這種方法來讀取static files?
請唯一使用 href="{% static 'xxx/yyy/map.js' %}"
Django 提供了這個讓您可以不用 hard code 任何路徑的機制,您就應該用它。
: 4
: collectstatic 這個app好用的地方在哪?
: 我看了這篇卻沒有感覺 http://0rz.tw/B8AWT
: 無論我有多少個app 我仍然要在每個html head裡面標明static file的位置
: <script src="{% static 'js/map.js' %}"></script>
: 那跟我直接連去static file dir也是一樣的意思 不是嗎?
不是。前面都講完了,這裏簡短回答。

Links booklink

Contact Us: admin [ a t ] ucptt.com