Deno 静态文件CSS或图片

楼玄
• 阅读 1528

Deno 静态页面或图片

视频讲解 https://www.bilibili.com/video/BV1BT4y1E7Nh/?p=7

我们一起来完成以下步骤:
  1. 沿用之前的工程代码
  2. 新增Login页面和响应的controller
  3. 添加CSS资源文件,然后预览页面

Deno 静态文件CSS或图片

controllers/controller.ts


const { cwd } = Deno;

class Controller {
    static async getData(ctx: any){
        //cwd获取当前工程目录 
        //注意 ' !== `
        ctx.render(`${cwd()}/views/index.ejs`,{
            title:"Testing",
            data:{name:"deepincoding"}
        }); 
    }

    //登录页面
    static async login(ctx: any){
        ctx.render(`${cwd()}/views/login.ejs`);
    }
}

export default Controller;

routers/index.ts


import { Router } from "https://deno.land/x/oak/mod.ts";
import Controller from "../controllers/Controller.ts";

const router = new Router();

router.get("/",Controller.getData);

router.get("/login",Controller.login);

export default router;

views/login.ejs



<html>
<head>
    <title>Deep In Coding</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Deep In Code">
    <link rel="shortcut icon" href="http://alpha-one.oss-cn-shenzhen.aliyuncs.com/static2/img/favicon.ico">
    <!--现在我们的CSS文件是在远程,要把它放到本地的工程里面-->
    <!--
    <link rel="stylesheet" href=" http://alpha-one.oss-cn-shenzhen.aliyuncs.com/static2/css/login.css">
    -->
    <!--页面并不显示成功-->
    <link rel="stylesheet" href="/login.css">
   

</head>


<div class="wrapper fadeInDown">
    <div id="formContent">
        <div class="fadeIn first">
            <img src="http://alpha-one.oss-cn-shenzhen.aliyuncs.com/static2/img/favicon.ico" id="icon" alt="User Icon" />
        </div>

        <form>
            <input type="text" id="userName" name="userName" class="fadeIn second"  placeholder="email">
            <input type="password" id="password" name="password" class="fadeIn third"  placeholder="password">
            <input type="button" class="fadeIn fourth" value="Log In" id="login-btn">
        </form>

        <div style="margin-bottom: 10px">
            <a href="#">Register</a>
        </div>
        <div>
            <a href="#">Forgot Password?</a>
        </div>
        <div class="alert alert-warning alert-dismissible fade" id="warning">
            <button type="button" class="close" data-dismiss="alert">&times;</button>
            <strong>Warning!</strong>请确认邮箱或密码
        </div>

    </div>


</div>

</html> 

main.ts




import { Application,send} from "https://deno.land/x/oak/mod.ts"
import {viewEngine,engineFactory,adapterFactory} from "https://deno.land/x/view_engine/mod.ts";
import router from "./routers/index.ts";

const ejsEngine = engineFactory.getEjsEngine();
const oakAdapter = adapterFactory.getOakAdapter();

const app = new Application();
app.use(viewEngine(oakAdapter,ejsEngine));
app.use(router.routes());
app.use(router.allowedMethods());

app.use(async ctx =>{
    await send(ctx,ctx.request.url.pathname,{
        root:`${Deno.cwd()}/static`
    });
});

await app.listen({port: 8000 })

点赞
收藏
评论区
推荐文章
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
samzhangjy samzhangjy
4年前
小学生都能听懂的C++:第一讲 初识C++
视频链接:<https://www.bilibili.com/video/BV1hw411f7nz/请留下你的三连支持!!
Wesley13 Wesley13
4年前
AI应用开发实战
AI应用开发实战从零开始搭建macOS开发环境本视频配套的视频教程请访问:https://www.bilibili.com/video/av24368929/(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.bili
Stella981 Stella981
4年前
Kubernetes on Raspberry Pi
视频https://www.bilibili.com/video/av29593263/(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.bilibili.com%2Fvideo%2Fav29593263%2F)https://www.bilibili.com/vide
Wesley13 Wesley13
4年前
Java基础教程——安装JDK
视频讲解:https://www.bilibili.com/video/av48196406/?p3(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.bilibili.com%2Fvideo%2Fav48196406%2F%3Fp%3D3)使用【jdk8u1
Stella981 Stella981
4年前
ShaderHelper2 组件升级,支持自动枚举参数!
ShaderHelper2组件新体验视频演示:https://www.bilibili.com/video/av69314195/(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.bilibili.com%2Fvideo%2Fav69314195%2F)ShaderHel
Easter79 Easter79
4年前
TensorFlow有Tensorboard,MindSpore框架如何做可视化?
5月12日,机器之心联合华为昇腾学院开设的线上公开课《轻松上手开源框架MindSpore》第6课完成,王越讲师为大家带来了主题分享《MindSpore可视化工具使用指南》,第6课回顾视频如下:https://www.bilibili.com/video/BV1et4y117aW​www.bilibili.com(https://
Stella981 Stella981
4年前
MIT Molecular Biology 笔记6 转录的调控
视频 https://www.bilibili.com/video/av7973580?fromsearch&seid16993146754254492690教材 _Molecularbiologyofthe gene_ 7thedition J.D.Watsonet.al转录的调控原核生物的转录调控
Stella981 Stella981
4年前
Creator 2.2.0 终于等来了这款Shader组件神器!一招搞定Effect特效
先看下视频演示:!file(https://oscimg.oschina.net/oscnet/b5ec2c0b961876d8e0be8d4902570bb2537.jpg)视频链接:https://www.bilibili.com/video/av74066806/(https://www.oschina.net/action/GoToL
一枝花 一枝花
1年前
为各位各位
https://www.bilibili.com/video/BV1sF4m1N7fwhttps://www.bilibili.com/video/BV1sF4m1N7fw?1x7https://www.bilibili.com/video/BV1am41
taskbuilder taskbuilder
1年前
TaskBuilder客户端请求前端静态文件的流程
任擎服务器支持支持以下三种静态文件:4.1.1纯静态文件纯静态文件是指存放在tasgine\web目录或其子目录下,可以直接在浏览器里加载或显示的文件,包括HTML文件、CSS文件、前端JS文件、图片、音视频文件等,客户端需要访问这种文件时,向任擎服务器发
楼玄
楼玄
Lv1
放下屠刀,立地成佛、救人一命,胜造七级浮屠。
文章
4
粉丝
0
获赞
0