aiohttp之新增靜態資源路徑

2022-08-11 09:48:12 字數 3074 閱讀 7919

所謂靜態資源,是指、js、css等檔案。官方的說明在這裡。

以乙個小專案來說明,下面是專案的目錄結構:

.

├── static

│ ├── css

│ │ ├── base.css

│ │ ├── bootstrap.min.css

│ │ └── font-awesome.min.css

│ ├── font

│ │ ├── fontawesome.otf

│ │ ├── fontawesome-webfont.eot

│ │ ├── fontawesome-webfont.svg

│ │ ├── fontawesome-webfont.ttf

│ │ └── fontawesome-webfont.woff

│ └── index.html

└── proxy_server.py

proxy_server.py給2個靜態檔案目錄static/cssstatic/font新增路由:

path='static/css',

name='css')

path='static/font',

name='font')

先來看看add_static方法的定義:

def add_static(self, prefix, path, *, name=none, expect_handler=none,

chunk_size=256*1024, response_factory=streamresponse,

show_index=false, follow_symlinks=false):

"""add static files view.

prefix - url prefix

path - folder with files

"""# todo: implement via prefixedresource, not resourceadapter

assert prefix.startswith('/')

if prefix.endswith('/'):

prefix = prefix[:-1]

resource = staticresource(prefix, path,

name=name,

expect_handler=expect_handler,

chunk_size=chunk_size,

response_factory=response_factory,

show_index=show_index,

follow_symlinks=follow_symlinks)

self.register_resource(resource)

return resource

必需的2個引數:

prefix:是靜態檔案的url的字首,以/開始,在瀏覽器位址列上顯示在**host之後,也用於index.html靜態頁面進行引用

path:靜態檔案目錄的路徑,可以是相對路徑,上面**使用的static/css就是相對路徑——相對於proxy_server.py所在路徑。

下面是頁面的效果:

載入的是index.html,下面是它引用靜態資源的**:

新增font的路徑是因為/font-awesome.min.css需要使用:

在瀏覽器中開啟css檔案:

可以看到是url的字首是/css/

如果修改字首:

path='static/css',

name='css')

頁面變成了:

css檔案也無法訪問了:

修改index.html中的css的引用路徑:

雖然目錄本身還是css,但通過add_static已經將它視為了css2017,頁面回覆正常了:

css檔案也可以開啟了:

url字首變成了/css2017/了。

此時直接開啟index.html檔案就會顯示為

因為static目錄下並沒有css2017這個資料夾。

至此就了解了add_static的基本使用方法了,可以通過重新定義prefix引數還可以隱藏伺服器上真實的存放靜態資源的目錄,也可以將分散在各處的資源檔案統一到同乙個路徑字首下。

此外,如果加上show_index=true,就可以顯示靜態資源的目錄索引了——預設是禁止訪問的:

path='static/css',

name='css',

show_index=true)

Express之託管靜態資源

其中乙個主要的中介軟體是express.static 4.0版本依舊保留的中介軟體 var express require express 通過express.static可以幫助我們託管靜態檔案,js,css,img等。專案目錄下的public下面有css,js,img等資料夾。我這麼需要通過ex...

windows下如何新增 刪除和修改靜態路由

route add 192.168.100.0 mask 255.255.255.248 192.168.1.1 metric 3 if 2新增一條路由記錄,所有到192.168.100.0 24網段的資料報,都通過2號 網絡卡 介面走192.168.1.1的閘道器,優先順序為3。route add...

vue專案給static下的靜態資源新增版本號

1 在vue專案的根目錄新建乙個staticversion.js,js檔案內容如下 2 在需要給靜態檔案新增版本號時在根目錄執行node staticversion 注 我的專案static資料夾下放了乙個h5專案,每次改動h5專案後需要執行node staticversion來給引用的或者html...