vert.x-web附帶乙個開箱即用的處理程式,用於提供靜態web資源,以便您可以非常輕鬆地編寫靜態web伺服器。
服務靜態資源,如
.html
,
.css
,
.js
或任何其他靜態資源,您使用的乙個例項
statichandler
。
對由靜態處理程式處理的路徑的任何請求都將導致檔案系統上的目錄或類路徑中的檔案被提供。
預設的靜態檔案目錄是
webroot
可以配置的。
在以下示例中,所有對以下路徑開始的請求
/static/
都將從目錄中獲取
webroot
:
router.route("/static/*").handler(statichandler.create());
例如,如果存在具有路徑
/static/css/mystyles.css
的
請求,靜態服務將在目錄中查詢檔案
webroot/css/mystyle.css
。
它還會在類路徑中尋找乙個名為的檔案
webroot/css/mystyle.css
。
這意味著你可以將所有的靜態資源打包成乙個jar檔案(或者fatjar)並且像這樣分發它們。
當vert.x首次在類路徑上找到資源時,它將其提取並將其快取在磁碟上的臨時目錄中,因此每次都不需要執行此操作。
處理程式將處理範圍感知請求。
當客戶端向靜態資源發出請求時,處理程式會通過在
accept-ranges
頭上
宣告單元來通知它可以處理範圍感知請求
。然後包含
range
具有正確單元和開始和結束索引
的標題的
其他請求
將接收到具有正確
content-range
標題的
部分響應
。預設情況下,靜態處理程式將設定快取頭以使瀏覽器有效地快取檔案。
vert.x的web設定標題
cache-control
,
last-modified
和
date
。
cache-control
max-age=86400
預設
設定為。
這相當於一天。
這可以根據
setmaxageseconds
需要
進行配置
。如果瀏覽器傳送帶有
if-modified-since
標題
的get或head請求,
並且該資源自該日期以來未被修改,
304
則返回狀態以告知瀏覽器使用其本地快取資源。
如果不需要處理快取標頭,則可以使用禁用
setcachingenabled
。
當啟用快取處理時,vert.x-web將快取資源的最後修改日期,這樣可以避免每次檢查實際上次修改日期時的磁碟命中。
快取記憶體中的條目具有到期時間,在此之後,磁碟上的檔案將被再次檢查並更新快取記憶體條目。
如果你知道你的檔案永遠不會在磁碟上發生變化,那麼快取條目將永遠不會過期。
這是預設設定。
如果您知道伺服器執行時您的檔案可能會在磁碟上發生更改,那麼您可以將檔案唯讀設定為false
setfilesreadonly
。
要在任何時候啟用可以在記憶體中快取的最大條目數量,請使用
setmaxcachesize
。
配置您可以使用的快取條目的到期時間
setcacheentrytimeout
。
對根路徑的任何請求
/
都將導致索引頁面被提供。
預設情況下,索引頁是
index.html
。
這可以使用配置
setindexpage
。
預設情況下,靜態資源將從目錄中提供
webroot
。
配置此用途
setwebroot
。
預設情況下,伺服器將提供隱藏檔案(以檔案開頭
.
)。
如果你不想隱藏的檔案被提供,你可以配置它
setincludehidden
。
伺服器也可以執行目錄列表。
預設情況下,目錄列表被禁用。
啟用它
setdirectorylisting
。
當啟用目錄列表時,返回的內容取決於
accept
標題中
的內容型別
。 對於
text/html
目錄列表,可以使用配置用於呈現目錄列表頁面的模板
setdirectorytemplate
。
預設情況下,vert.x會將從類路徑提供的檔案快取到磁碟上的檔案
.vertx
中當前工作目錄中
呼叫的目錄的子目錄中。
這在將服務部署為生產環境中的fatjar時非常有用,因為每次從類路徑提供檔案的速度可能會很慢。
在開發過程中,這可能會導致問題,就像在伺服器執行時更新靜態內容一樣,快取的檔案將不會被更新的檔案提供。
要禁用檔案快取可以提供您vert.x選項的屬性
fileresolvercachingenabled
來
false
。
為了向後相容,它也將該值預設為系統屬性
vertx.disablefilecaching
。
例如,您可以在您的ide中設定執行配置,以便在執行主類時進行設定。
nginx學習 七 nginx提供靜態資源服務
這裡準備了乙個資料夾,裡面放入了乙個img資料夾和index.html檔案,將檔案上傳到home下。這裡我們從新起個埠 server error page 500 502 503 504 50x.html location 50x.html 注意這裡訪問的時候,是訪問 home static kev...
資源提供者和資源解析者
string strings new string if build.version.sdk int 23 1.提供方 contentprovider 1 建立資料庫,自定義類繼承sqliteopenhelper 2 自定義內容提供者類,繼承contentprovider,重寫insert dele...
django 靜態資源
理解django.contrib.staticfiles 在 1.3 之前,所有的靜態檔案都是用media url和media root來控制的。為了和使用者上傳的檔案作區分,staticfiles media 和 static 配置項的區別 使用 staticfiles static root 配...