提供靜態資源

2021-08-19 21:23:50 字數 3067 閱讀 5388

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-controlmax-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 配...