Static files (javascript/css/html) can be referenced and returned in the static directory:
<img src="/static/captura2.png">If you put a static/favico.jpg or static/favico.png or static/favico.ico into your static folder, it will automatically become the favicon.
If you put an static/404.html into your static file, it will be used when a 404 error occurs.
If you put an static/500.html into your static file, it will be used when an internal error occurs.
To return a custom error page, place the <error_code>.html in the static directory. Creating a 500.html into the static directory, for example, will return this page when a 500 error occurs.
Dynamic caching may be used inside HTML by using smart_cache:
<img src="smart-cache='file.png'">It's also possible to generate inline inclusion with:
<div>
inline-include='static/teste3.html'
</div>Smart caching with rendered text can be done with private_cweb_smart_static_ref:
#include "CWebStudioOne.c"
CwebHttpResponse *main_sever(CwebHttpRequest *request ){
const char *lang = "en";
const char *text = "text exemple";
CTextStackModule m = newCTextStackModule();
struct CTextStack *s = newCTextStack(CTEXT_LINE_BREAKER, CTEXT_SEPARATOR);
m.open_format(s,CTEXT_HTML,"lang=\"%s\"" ,lang);
m.open(s,CTEXT_HEAD);
char *fav_icon_link = cweb_smart_static_ref("favicon.ico");
m.auto_close_format(s,CTEXT_LINK,"rel=\"shortcut icon\" href=\"%s\"" ,fav_icon_link);
free(fav_icon_link);
m.close(s,CTEXT_HEAD);
m.open(s,CTEXT_BODY);
char *img_link = cweb_smart_static_ref("my_image.png");
m.auto_close_format(s,CTEXT_IMG,"src=\"%s\" width=\"200px\"" ,img_link);
free(img_link);
m.close(s,CTEXT_BODY);
m.close(s,CTEXT_HTML);
return cweb_send_rendered_CTextStack(s,200);
}
int main(int argc, char *argv[]){
CwebServer server = newCwebSever(5000, main_sever);
CwebServer_start(&server);
return 0;
}These examples demonstrate how to handle static files and use smart caching.