最近做了一个项目,要求同一类型的多个专业应用程序(网站),但是每个应用程序都需要调用各自当中的ueditor。
步骤:
一、在vs2013中设置每个专业的asp.net mvc 应用程序.
1、配置根目录下的web.config 下的数据库连接字符串。(使用的是数据库文件的访问方式,这种方式的好处是,尽管每个应用程序使用的是相同的连接字符串名称,但是数据库保存在每个应用程序的app-data文件夹下,不会引发冲突 。)
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(local);AttachDbFilename=|DataDirectory|aspnet-MajorConstruction-shukongjishu.mdf;Initial Catalog=aspnet-MajorConstruction-shukongjishu;User ID=sa;Password =$Ifkmjb9f;" providerName="System.Data.SqlClient"/>
<add name="MajorContext" connectionString="Data Source=(local);AttachDbFilename=|DataDirectory|MajorConstruction-shukongjishu.mdf;Initial Catalog=MajorConstruction-shukongjishu;User ID=sa;Password =$Ifkmjb9f;" providerName="System.Data.SqlClient"/>
</connectionStrings>
2、配置 ueditor所在目录下的ueditor.config.js 路径 window.UEDITOR_HOME_URL = "/shukongjishu/Content/ueditor/";
配置 ueditor所在目录下的 .net文件夹下的 config.json 文件,给图片、文件、视频等设置 访问前缀, 比如图像访问前缀:"imageUrlPrefix": "/shukongjishu/Content/ueditor/net/", /* 图片访问路径前缀 */
3、在需要访问ueditor的视图中设置路径,包括创建、编辑视图,和访问视频的视图。通过查看网页的源代码,我们可以看出,如果是使用的.net里面的 “~”目录符号,它引用的是该应用程序(虚拟目录)的根文件夹,而不是整个应用程序的文件夹下。
而使用JS的方式引用 js,则"/"根目录表示的是 整个网站的根目录。
所有创建和编辑视图中:
@section Scripts {
@Scripts.Render("~/bundles/jqueryval","~/Content/ueditor/ueditor.config.js","~/Content/ueditor/ueditor.all.js")
<script type="text/javascript">
var editor = new baidu.editor.ui.Editor({
UEDITOR_HOME_URL:'/shukongjishu/Content/ueditor/',//配置编辑器路径
iframeCssUrl:'/shukongjishu/Content/ueditor/themes/iframe.css',//样式路径
// initialContent:'欢迎使用ueditor',//初始化编辑器内容
autoHeightEnabled:true,//高度自动增长
initialFrameHeight:400
});
editor.render('Content');
</script>
}
所有访问视频的视图中修改要调用 的js:
@section Scripts{
@Scripts.Render("~/Content/ueditor/third-party/video-js/video.js")
@Scripts.Render("~/Content/ueditor/third-party/video-js/html5shiv.min.js")
@* @Scripts.Render("~/Content/ueditor/ueditor.parse.js")*@
<script type="text/javascript">
videojs.options.flash.swf = "/shukongjishu/Content/ueditor/third-party/video-js/video-js.swf";
</script>
}
4、重新编译一次应用程序,用FileSystem 文件系统发布程序 到一个文件夹(比如shukongjushu),但文件系统的发布方式不能发布数据库,默认也不发布App-Data文件夹 ,因为App-Data是存放数据库的,所有必须单独发布,右键选中App-Data文件夹,点发布。就把App-Data也发布出去了。
二、IIS设置
1、在IIS 中建立一个网站,应用程序池设置为.net Framework 4.0.应用程序标识设置为NetworkService;
2、然后在这个网站下建立与以上ueditor目录前缀同名的应用程序(相当于虚拟目录),但比虚拟目录灵活。 比如(shukongjishu),该应用程序指向我们刚才发布的虚拟目录。
应用程序有单独的web.config配置文件,也可以单独访问,在IIS中选中点击浏览即可访问。
三、配置sqlserver
1、登陆 sqlserver 2012或 2008 R2 管理控制台,新建一个名为NETWORK SERVICE的账户,在安全性-登录名-新建登录名,在 服务器角色中dbcreator 下打钩,以便能够利用Entity Frame work 采用asp.net mvc code first 方式 创建数据库。同时,也可设为sysadmin.
四、在浏览器中访问 子应用程序,
浏览器访问子程序后,程序将会重新编译和,填充数据库。
问题:有些时候访问子应用程序的时候,有些时候 有些子程序访问 ueditor 正常,有时 会出现 后端配置不正确。但 重新启动IIS后,又正常了。不知道原因。