2015-08-13 32 views
1

我已經部分理解了爲什麼開發人員會有一個像afs342sf.css這樣的文件名,而不是像main.css這樣可讀性更強的東西 - 我不相信開發者會手動命名文件;我確信這是在插入任何數據庫時以編程方式完成的。對於爲什麼會需要這個問題以及如何調用這個問題,我感到有點困惑。爲什麼有些網站有鏈接文件,如「afs342sf.css」而不是「main.css」?

如果數據庫有一個表,並排除他人簡單:

file_id, file_name, file_display_name, file_size.......... etc. 

當要求它請將file_display_name使用(afs342sf.css或乾脆afs342sf)作爲參考的數據 - href="/yourhost/www/afs342sf.css" - 這到底是當有人可以輕鬆使用相同的GET請求信息時有什麼區別,或者我是否有這個理論都是錯誤的? - 我通常是一個偏執的人(顯然對安全有好處),並且讓自己感到困惑,因爲它也可能是它的id,但是這不是太過分嗎?然後想到如果程序在每次請求時更改文件名,該怎麼辦;當其他請求傳入時它可能會丟失,並且它沒有固定的地址名稱?

最後但並非最不重要的是,如果任何人可以發佈任何鏈接到可能有助於隱身或隱藏文件檢索方法的網頁,我將非常感激。爲了記錄,我不會隱藏.php擴展名 - 自我教導和從可信任社區學習對於知識來說是壓倒性的。

+2

每次修改源文件以修復緩存錯誤時,可能會自動生成該文件。 –

+0

我不知道文件名是否是其內容的散列,並且是從SASS或LESS構建的?我做了類似的事情,但我在查詢字符串中使用mtime而不是在文件名中([例如this](http://ilovephp.jondh.me.uk/) - 查看源代碼)。我不認爲這種技術被用來隱藏某些東西。 – halfer

+0

感謝您的幫助,時間修改:) –

回答

1

你說得對,它沒有手動命名。像這樣的任意文件名通常意味着它們是用像Assetic這樣的工具生成的。這主要用於在被放置到網絡之前必須被轉換的文件(SASS到CSS; Coffeescript到Javascript)。

Assetic也有一個cache-busting插件,它可以根據散列生成文件名,所以當內容改變時,瀏覽器將被迫獲取新文件(這是一種標準的緩存清除技術)。這很有用,因爲靜態文件通常具有很長的到期日期,並且沒有其他方式可以提醒瀏覽器文件已更改。

相關問題