所謂靜態資源,是指、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/css
和static/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...