26
2019.2

单文件入口

作者: POPASP
采用单文件入口进行项目部署和访问,无论完成什么功能,一个项目都有一个统一(但不一定是唯一)的入口。应该说,所有项目都是从入口文件开始的,并且所有的项目的入口文件是类似的,入口文件中主要包括: * 引入框架 (必须) * 引入函数文件或外部文件(可选) * 定义项目路径 (必须) * 定义框架路径 (根据情况而定) * 执行框架入口函数(必须) 下面,我们从建站到使用,详细讲解一下。 ### 1、创建网站用的文件夹 创建一个文件夹“D:/asp/studypop/” ### 2、添加网站 在IIS中添加一个网站,如下所示: [![在IIS中创建一个网站](http://www.popasp.com/images/31/021.jpg "在IIS中创建一个网站")](http://www.popasp.com/images/31/021.jpg "在IIS中创建一个网站") ### 3、进行asp设置 [![在IIS中创建一个网站](http://www.popasp.com/images/31/022.jpg "在IIS中创建一个网站")](http://www.popasp.com/images/31/022.jpg "在IIS中创建一个网站") 图中红框的内容如果为false,则需要把它们设置为true。 ### 4、建立入口文件 下载POPASP3.1,并放在studypop的上级目录,然后创建一个入口文件“D:/asp/studypop/index.asp”,内容如下 ```brush:vbscript <% '项目路径,2.3版本以前用 Const APP_PATH = "./home" '项目文件夹,部署项目时,不要手工创建home文件夹,否则无法进行项目部署 POP_MVC.appPath = "./home" '在使用多文件入口,项目部署时使用POP_MVC.start,部署完后用POP_MVC.run '而采用单文件入口,项目部署完成前后start方法不变。 POP_MVC.start %> ``` ### 5、项目部署 打开浏览器,输入地址并运行: ` http://127.0.0.1:1254/index.asp ` 就会看到欢迎页面: [![POPASP项目部署](http://www.popasp.com/images/31/023.jpg "在IIS中创建一个网站")](http://www.popasp.com/images/31/023.jpg "POPASP项目部署") 项目部署后,会在网站根目录下生成一些文件(夹)。 再次刷新,会看到POPASP的控制台。 [![POPASP项目部署](http://www.popasp.com/images/31/024.jpg "在IIS中创建一个网站")](http://www.popasp.com/images/31/024.jpg "POPASP项目部署") 入口文件并不一定都是指index.asp 文件,因为我们可以为不同的项目创建不同的入口文件,例如,前台项目的入口文件为index.asp ,后台项目的入口文件可能是admin.asp。 单文件入口与多文件入口不同,它采用的类似ThinkPHP框架的架构,而多文件入口是自创的一套模式,单文件入口不需要使用多文件入口的`Call A_("类名/方法名")` 。 POPASP1.X框架采用单文件入口,POPASP2.X~3.0采用多文件入口,POPASP3.1之后可以采用多文件入口与可以采用单文件入口,但是单文件入口有诸多好处,所以3.1的帮助文档不再讲解多文件入口,而只讲单文件入口,如果想了解多文件入口,请查阅[POPASP2.3帮助文档][POPASP2.3帮助文档] [POPASP2.3帮助文档]: http://www.popasp.com/?api23。 ### iaspcms 入口文件举例 对于具体项目的入口文件,往往不可能仅仅只有几行代码。我们以popasp3.1制作的iaspcms举例,它的入口文件代码如下: ```brush:vb <% '如果给该文件重命名,系统将无法正常运行 '指定框架路径 POP_MVC.mvc_dir = "admin123/popasp_3.1/" POP_MVC.appPath = "admin123/home" '内存缓存 'application.contents.removeAll 'POP_MVC.applicationOn = 1 dim setting,config POP_MVC.init POP_MVC.config("sitePath") = POP_MVC.root_path POP_MVC.config("DB_PATH") = POP_MVC.config("sitePath") & POP_MVC.config("DB_PATH") '得到配置 set config = B_("Config").field("ConfigName,ConfigValue").getObject2 '配置表验证 if config is nothing then POP_MVC.exit( "网站配置表被破坏,无法打开" ) end if '网站禁用 if config.siteMode = 0 then POP_MVC.exit( config.siteHelp ) Private script_name,home_page,LanguageAlias,entranceasp script_name = LCase(POP_MVC.file.basename( Array(POP_MVC.vars("SCRIPT_NAME") , 1) )) '得到首页与语言 if script_name = "popasp_inc" then LanguageAlias = "" elseif script_name = "index" or script_name = "default" then home_page = "./index.html" elseif script_name = "wap" then home_page = "./wap/index.html" POP_MVC.config("isWap") = 1 elseif inStr(script_name , "wap" ) > 1 then LanguageAlias = left( script_name , len(script_name) - 3 ) home_page = "./" & LanguageAlias & "/wap/index.html" POP_MVC.config("isWap") = 1 else LanguageAlias = script_name home_page = "./" & LanguageAlias & "/index.html" end if '打开静态页面 if config.runMode = 1 and Request.QueryString = "" then if POP_MVC.file.isFile( home_page ) then response.write POP_MVC.file_get_contents( home_page ) response.end end if end if if LanguageAlias = "" then set setting = B_("Language").where("IsDefault=1").getObject POP_MVC.config("ENTRY_PAGE") = POP_MVC.config("INDEX_PAGE") else set setting = B_("Language").where("Alias = '" & LanguageAlias & "'").getObject POP_MVC.config("ENTRY_PAGE") = LanguageAlias & ".asp" end if '网站未设置默认语言 if setting is nothing then POP_MVC.exit( "网站未设置有效语言" ) end if '该语言网站关闭 if setting.LanguageStatus = 0 then POP_MVC.exit( setting.LanguageName & " 网站关闭" ) end if if POP_MVC.config("isWap") = 1 then setting.htmlFilePath = "wap" if LanguageAlias = "" then POP_MVC.config("ENTRY_PAGE") = "wap.asp" else POP_MVC.config("ENTRY_PAGE") = LanguageAlias & "wap.asp" end if else if LanguageAlias = "" then POP_MVC.config("ENTRY_PAGE") = POP_MVC.config("INDEX_PAGE") else POP_MVC.config("ENTRY_PAGE") = LanguageAlias & ".asp" end if end if '水印 if config.waterType = 1 then POP_MVC.config("WATERMARK_PATH") = config.waterMarkFont else POP_MVC.config("WATERMARK_PATH") = config.waterMarkPic end if POP_MVC.start %> ```