examples: make the vweb_assets.v example more robust (always change work folder to the folder of the executable). Document the vweb.Context.handle_static behaviour.

pull/13800/head
Delyan Angelov 2022-03-21 19:05:18 +02:00
parent f2e0ab5912
commit 3bae489e35
No known key found for this signature in database
GPG Key ID: 66886C0F12D595ED
2 changed files with 9 additions and 1 deletions

View File

@ -1,5 +1,6 @@
module main
import os
import vweb
// import vweb.assets
import time
@ -16,6 +17,7 @@ fn main() {
mut app := &App{}
app.serve_static('/favicon.ico', 'favicon.ico')
// Automatically make available known static mime types found in given directory.
os.chdir(os.dir(os.executable())) ?
app.handle_static('assets', true)
vweb.run(app, port)
}

View File

@ -628,8 +628,14 @@ fn (mut ctx Context) scan_static_directory(directory_path string, mount_path str
}
}
// Handles a directory static
// handle_static is used to mark a folder (relative to the current working folder)
// as one that contains only static resources (css files, images etc).
// If `root` is set the mount path for the dir will be in '/'
// Usage:
// ```v
// os.chdir( os.executable() ) ?
// app.handle_static('assets', true)
// ```
pub fn (mut ctx Context) handle_static(directory_path string, root bool) bool {
if ctx.done || !os.exists(directory_path) {
return false