Set*_* IK 1 asp.net-mvc-4 twitter-bootstrap
我正在使用Twitter Bootstrap使用Buget安装到ASP.NET MVC应用程序.然而,我很惊讶地发现我曾经在localhost上工作的所有引导程序JavaScript,实际上在上传到我的网络托管服务提供商时仍然停止工作.
我完全被这个碰到了,我似乎无法弄清楚出了什么问题.
在加载jQuery之前,一些依赖于jQuery的脚本被包含在内.
我建议搬家
<script src="/Scripts/bootstrap.js" type="text/javascript"></script>
<script type="text/javascript" src="http://twitter.github.com/bootstrap/assets/js/bootstrap-dropdown.js"></script>
Run Code Online (Sandbox Code Playgroud)
和你的自定义javascript从第75行到你的页面底部,包含jQuery包之后.或者将您的jQuery包移动到您的<head>.这是你的偏好 - 看到这个问题:Jquery代码应该在页眉还是页脚?关于那个特定问题......
你说它在你的本地盒子而不是在远程服务器上工作 - 如果确实如此,我最好的猜测是,这与捆绑/缩小的工作方式不同,具体取决于你是处于调试模式还是发布模式.
更新
基本上,在调试版本中,不会对脚本和css执行捆绑/缩小.每次<link>和<script>你在你的包引用将作为一个单独的文件,提供给他们任何转换.在发布版本中,捆绑中的文件将连接在一起成为一个文件,并将缩小等转换应用于它们.根据您的评论,为了在本地和发布的网站中获得调试行为,我看到3个选项:
1.在发布版本中,在web.config中将编译调试标志设置为true.
即
<system.web>
<compilation debug="true" />
<!-- Lines removed for clarity. -->
</system.web>
Run Code Online (Sandbox Code Playgroud)
我不特别推荐这个,因为你的发布版本通常不会被标记为调试.但这是一个有用的设置,可以快速切换您的发布版本,以检查您的javascript/css在关闭时是否正常工作.
2.在代码中,关闭捆绑表中的捆绑优化.
public static void RegisterBundles(BundleCollection bundles)
{
// other code...
BundleTable.EnableOptimizations = false;
}
Run Code Online (Sandbox Code Playgroud)
3.不要这样做.
行为的差异是设计的,并且有意义 - 在开发本地的框中,您可以看到所有单独的脚本/ css文件,并且以未明确的形式,这使得调试变得更加容易.发布后,文件会被压缩为一个压缩文件,这将减少您网站的加载时间.
我个人推荐选项3,并确保您的样式/脚本包含在正确的顺序中.
| 归档时间: |
|
| 查看次数: |
3351 次 |
| 最近记录: |