zoukankan      html  css  js  c++  java
  • 用模板生成静态页

    这个小project主要是为了练习用模板生成静态页
    使用ASP.NET模版生成HTML静态页面并不是难事,主要是使各个静态页面间的关联和链接如何保持完整
    主要实现的功能是,后台添加新闻,生成.html文件,前台访问相应的静态页
    开发工具VS2012+SQL2008

    优点

    1. 可以建立非常复杂的页面,利用包含js文件的方法,在js文件内加入document.write()方法可以在所有页面内加入如页面头,广告等内容。

    2. 静态html文件利用MS Windows2000的Index Server可以建立全文搜索引擎,利用asp.net可以以DataTable的方式得到搜索结果。而Win2000的Index服务无法查找xml文 件的内容。如果包括了数据库搜索与Index索引双重查找,那么此搜索功能将非常强大。

    3. 节省服务器的负荷,请求一个静态的html文件比一个aspx文件服务器资源节省许多。

    缺点

    思路二: 如果用硬编码的方式,工作量非常大,需要非常多的html代码。调试困难。而且使用硬编码生成的html样式无法修改,如果网站更换样式,那么必须得重新编码,给后期带来巨大的工作量。

    新建了一个自带的Web From项目
    主要界面如图:

    添加新闻之后,所生成的页面都是.html文件
     
    最后详细的新闻页面如下:

    主要注意的事项有:
        1.将不同种类的新闻,放在不同的文件夹下(这个在早期就要设计好)
        2.在创建的模板html文件,对于css,js的路径要注意
        
    看下主要的代码:(部分来自网络)
    模板:
    复制代码
      <header>
            <div class="content-wrapper">
                <div class="float-left">
                    <p class="site-title">
                        <a href="./">your logo here</a>
                    </p>
                </div>
                <div class="float-right">
                    <section id="login">
    
                        <ul>
                            <li><a href="Account/Register.aspx" id="ctl10_registerLink">Register</a></li>
                            <li><a href="Account/Login.aspx" id="ctl10_loginLink">Log in</a></li>
                        </ul>
    
                    </section>
                    <nav>
                        <ul id="menu">
                            <li><a href="./">Home</a></li>
                            <li><a href="About.aspx">About</a></li>
                            <li><a href="Contact.aspx">Contact</a></li>
                        </ul>
                    </nav>
                </div>
            </div>
        </header>
        <div id="body">
            <section class="contact">
                <header>
                    新闻标题
                </header>
                <p>$Title$</p>
            </section>
            <section class="contact">
                <header>
                    新闻内容
                </header>
                <p>$Content$</p>
            </section>
            <section class="contact">
                <header>
                    记者
                </header>
                <p>$Author$</p>
            </section>
            <section class="contact">
                <header>
                    发布时间
                </header>
                <p>$WriterTimes$</p>
            </section>
    
        </div>
    
        <footer>
            <div class="content-wrapper">
                <div class="float-left">
                    <p>My ASP.NET Application-大蜗牛</p>
                </div>
            </div>
        </footer>
    复制代码

     

    相关生成html文件的方法:

    复制代码
      private bool WriteFile(string htmlName, string strArticle, string strTitle, string strContent, string strAuthor, string htmlFileName)
            {
                string path = HttpContext.Current.Server.MapPath("newspages/");
                string sql;
                Encoding code = Encoding.GetEncoding("gb2312");
                //读取模版文件
                string temp = HttpContext.Current.Server.MapPath("NewsTemplate.html");
                try
                {
                    sr = new StreamReader(temp, code);
                    str = sr.ReadToEnd();
                    sr.Close();
                }
                catch (Exception)
                {
                    sr.Close();
                    throw;
                    return false;
                }
    
                //替换内容
    
                str = str.Replace("$ShowArticle$", strArticle);
                str = str.Replace("$Title$", strTitle);
                str = str.Replace("$Content$", strContent);
                str = str.Replace("$Author$", strAuthor);
                str = str.Replace("$WriterTimes$", System.DateTime.Now.ToShortDateString());
    
                ViewState["P"] = path + htmlName;
                sql = "insert into News(title,[content],author,htmlname) values ('" + strTitle + "','" + strContent + "','" + strAuthor + "','" + htmlFileName + "')";
                try
                {
                    sw = new StreamWriter(path + htmlName, false, code);
                    sw.Write(str);
                    sw.Flush();
                    sh.Add(sql);
                }
                catch (Exception)
                {
                    return false;
                    throw;
                    sw.Close();
                }
    
                return true;
            }
    复制代码

           源代码下载(数据库在App_Data)

    作者:大蜗牛 出处:http://www.cnblogs.com/lixiaofei/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    分类: .Net
    标签: 静态页
  • 相关阅读:
    jQuery easyui datagrid pagenation 的分页数据格式
    Mysql操作符号
    jquery JSON的解析方式
    线程有几种状态
    工作日志2014-07-07
    leetcode
    Fragment中的setUserVisibleHint()方法调用
    Android开发:Eclipse中SqliteManager插件使用
    海南出差报告总结(案件录入与案件追踪系统)
    Python学习十四:filter()
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2658876.html
Copyright © 2011-2022 走看看