在上一篇文章【MVC+Ext.net零基础学习记录(三)】中提到了利用MVC的Area可以做到项目分离,但是实际操作起来还是有很多问题的。比如,对于物理资源的访问,会报:没有相关资源

开始的时候,我在博客园也搜索到了很多解决方案,其中http://www.cnblogs.com/dingji/archive/2012/06/10/2544255.html这篇文章的解决方法是我感觉最有效的解决方法

但是我思考了很久,还是决定不采用MvcContrib进行分离,因为这样的话,一个问题是,DLL文件到后来会很大,因为前台项目里面的图片以及各种框架的引用会很多。另一个原因是感觉为了实现分离,而将静态资源均编译成dll,感觉有点得不偿失

所以到最后,我采用了一种折中的方法,将部分文件比如View里面的内容均通过【生成事件】来拷贝到主项目中,而其他的部分,比如整体框架的JS部分,则更改从项目的引用路径。而例如语言资源文件,则公用一个文件。

具体做法如下:

1 按照上一篇文章【MVC+Ext.net零基础学习记录(三)】,进行基本的项目分离

2 将从项目的JS,css引用路径改成相对项目的绝对路径,

原来的写法:<script type="text/javascript" src="../../Scripts/Framework/jquery.js"></script>

改后的写法:<script type="text/javascript" src="/Scripts/Framework/jquery.js"></script>

这里的改写是因为,对于主项目调用从项目里面的画面时,目录其实是.../从项目Area名称/调用画面文件夹/画面名,这里如果采用相对路径,则会自动变成Area/...,会提示找不到文件

,而改写后,则不管项目中的什么路径下的文件引用改物理资源,都是相对整个项目的根目录而言的

3 修改从项目的生成事件

mkdir "$(SolutionDir)$(SolutionName)\Scripts\PageJS"
   xcopy "$(ProjectDir)Scripts\PageJS" "$(SolutionDir)$(SolutionName)\Scripts\PageJS" /S /E /C /Y

这里的代码,应该大家都知道,就是在上一篇文章的基础上,另外复制从项目的JS文件到主项目的相对一致的路径上

4 汇总公共类库

因为时间关系,所以记录的比较简单,如果有相同需求的童鞋,可以联系我,相互切磋嘛

MVC+Ext.net零基础学习记录(四)的更多相关文章

  1. MVC+Ext.net零基础学习记录(五)

    继MVC+Ext.net零基础学习记录(四),在后面我在既有的项目上又添加了一个子项目,还用前面提到的方法,进行主项目中引用DLL,然后子项目中生成事件中使用mkdir 进行拷贝 发现一个下午就总是报 ...

  2. MVC+Ext.net零基础学习记录(一)

    由于最近开发一个项目,决定使用MVC+EXT.NET,决定将学习的这个过程记录下来 本人和很多菜鸟一样,之前既没有使用过MVC开发,也没有接触过EXT.NET,所以这将是一个大家共同学习的过程,文章中 ...

  3. MVC+Ext.net零基础学习记录(三)

    这里开始说明一下,如何在MVC项目中引用EXT.NET,这里参考:http://www.cnblogs.com/zhanghaomars/p/3470987.html

  4. MVC+Ext.net零基础学习记录(二)

    很多人在开发一个新的项目时,需要先决定项目的整体架构,是决定使用MVC的同时也不例外,具体包含:项目的多语言性,项目的多风格选择,项目的可扩展性 其中项目的多语言性:http://www.cnblog ...

  5. salesforce 零基础学习(四十六)动态美观显示列表中记录的审批状态

    项目中,申请者申请某些事项以后,常常需要在申请列表中查看当前申请的记录所在的审批状态,动态美观的显示状态可以使UI更符合客户要求,比如下面这样. 以Goods__c表为例,申请者申请的一些采购以前需要 ...

  6. salesforce 零基础学习(四十八)自定义列表分页之Pagination基类封装 ※※※

    我们知道,salesforce中系统标准列表页面提供了相应的分页功能,如果要使用其分页功能,可以访问http://www.cnblogs.com/zero-zyq/p/5343287.html查看相关 ...

  7. salesforce 零基础学习(四十一)Group

    salesforce中,有的时候我们需要将一组用户放进一个Group,用来实现以下主要功能: 1.通过sharing rule设置默认的共享访问; 2.将记录分享给其他用户; 3.指定同步的联系人,这 ...

  8. salesforce 零基础学习(四十七) 数据加密简单介绍

    对于一个项目来说,除了稳定性以及健壮性以外,还需要有较好的安全性,此篇博客简单描述salesforce中关于安全性的一点小知识,特别感谢公司中的nate大神和鹏哥让我学到了新得知识. 项目简单背景: ...

  9. salesforce 零基础学习(四十五)Approval Lock & UnLock相关注意事项

    我们都知道,当一条记录进入审批流程以后会自动加锁,apex提供Approval类的lock和unlock方法可以让我们使用代码对记录进行加锁和解锁. 项目中遇到一个需求,需要当某种情况下对记录进行先解 ...

随机推荐

  1. Windows网络编程 2 【转】

    Windows网络编程使用winsock.Winsock是一个基于Socket模型的API,在Windows系统中广泛使用.使用Winsock进行网络编程需要包含头文件Winsock2.h,需要使用库 ...

  2. Windows API 教程(七) hook 钩子监听

    茵蒂克丝 如何创建一个窗口 手动创建窗口的流程 实际代码 安装钩子 (Install hook) 钩子简介 SetWindowsHookEx 函数 设置监听[键盘]消息 设置监听[鼠标]消息 如何创建 ...

  3. 2016.7.12 eclispe使用mybatis generator生成代码时提示project E is not exist

    运行mybatis-generator之后,出现错误:project E is not exist   错误原因:使用了项目的绝对路径. http://bbs.csdn.net/topics/3914 ...

  4. git pull“No remote repository specified”解决方法

    git pull“No remote repository specified”解决方法 学习了:http://www.paopaoche.net/jiaocheng/77226.html 修改“.g ...

  5. 转:GRADLE构建最佳实践

    转自: http://www.figotan.org/2016/04/01/gradle-on-android-best-practise/#section-2 随着谷歌对Eclipse的无情抛弃和对 ...

  6. Hibernate4.3.6 Final+Spring3.0.5配置出错提示及解决方法

    1. Caused by: org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used ...

  7. Shell脚本之:case

    case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case语句的语法 case 值 in 模式1) command1 command2 co ...

  8. 【Excle数据透视】如何在数据透视表字段列表中显示更多的字段

    创建完数据透视表之后,由于字段太多,在列表中没有完全显示 解决方案 通过"字段节和区域节并排"功能来显示更多字段 修改后结果 字段已经完全显示出来了! "字段节和区域节层 ...

  9. c# 推荐5款超实用的.NET性能分析工具

    虽然.NET框架号称永远不会发生内存泄漏,原因是引入了内存回收机制.但在实际应用中,往往我们分配了对象但没有释放指向该对象的引用,导致对象永远无法释放.最常见的情况就是给对象添加了事件处理函数,但当不 ...

  10. 对于Json和对象转换的学习

    学习这个的用处有非常多的:        在传输数据过程中比較查看数据比較清晰,代码也较清晰.也能够避免split函数带来的隐藏bug 当然也有不足:        准备工具较繁琐,须要准备对象(当然 ...