54 lines
1.1 KiB
V
54 lines
1.1 KiB
V
|
module main
|
||
|
|
||
|
import (
|
||
|
vweb
|
||
|
vweb.assets
|
||
|
time
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
port = 8081
|
||
|
)
|
||
|
|
||
|
pub struct App {
|
||
|
mut:
|
||
|
vweb vweb.Context
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
vweb.run<App>(port)
|
||
|
}
|
||
|
|
||
|
pub fn (app mut App) init() {
|
||
|
// Arbitary mime type.
|
||
|
app.vweb.serve_static('/favicon.ico', 'favicon.ico', 'img/x-icon')
|
||
|
// Automatically make available known static mime types found in given directory.
|
||
|
app.vweb.handle_static('assets')
|
||
|
// This would make available all known static mime types from current
|
||
|
// directory and below.
|
||
|
//app.vweb.handle_static('.')
|
||
|
}
|
||
|
|
||
|
pub fn (app mut App) reset() {}
|
||
|
|
||
|
fn (app mut App) index() {
|
||
|
// We can dynamically specify which assets are to be used in template.
|
||
|
mut am := assets.new_manager()
|
||
|
am.add_css('assets/index.css')
|
||
|
|
||
|
css := am.include_css(false)
|
||
|
title := 'VWeb Assets Example'
|
||
|
subtitle := 'VWeb can serve static assets too!'
|
||
|
message := 'It also has an Assets Manager that allows dynamically specifying which CSS and JS files to be used.'
|
||
|
|
||
|
$vweb.html()
|
||
|
}
|
||
|
|
||
|
fn (app mut App) text() {
|
||
|
app.vweb.text('Hello, world from vweb!')
|
||
|
}
|
||
|
|
||
|
fn (app mut App) time() {
|
||
|
app.vweb.text(time.now().format())
|
||
|
}
|