我将SignalR合并到一个项目中,我已经使用require.js来处理我的脚本依赖项.
我在加载"jquery.signalR-1.1.2"后确保调用"/ signalr/hubs"时遇到了一些麻烦.
我得到了它的工作,但我想知道是否有更好的替代品.
这就是我所拥有的:
require(["signalr"], function () {
require(["noext!/signalr/hubs"], function () {
//initialize and work with the hub here
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在这里创建一个垫片来建立信号器/集线器和信号器脚本之间的依赖关系?
谢谢!
我将mvc4应用程序托管在现有站点下的虚拟路径中:
如果URL中没有提供尾部斜杠,则会出现一个众所周知的相对路径被破坏的问题.因此,如果用户按照上面的方式键入URL,则无法找到使用相对路径的脚本,样式等.
如果提供了斜杠,一切正常.
为解决此问题,我安装了URL Rewrite(http://www.iis.net/downloads/microsoft/url-rewrite)并添加了规则以附加尾部斜杠(如果不存在).这是一个预定义的规则,如下所示:
<rewrite>
<rules>
<rule name="AddTrailingSlashRule1" stopProcessing="true">
<match url="(.*[^/])$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
</conditions>
<action type="Redirect" url="{R:1}/" />
</rule>
</rules>
Run Code Online (Sandbox Code Playgroud)
到目前为止,唯一的问题是,现在通过在捆绑名称/ url和chache破坏之间添加一个尾部斜杠来破坏捆绑:
即:
http://www.mysite.com/myApp/bundles/myBundle/?v=8_EQPT2vzBgg4HcGhkeTQpLE1flm2VOsp3A1ZEy-C3k1
(注意 myBundle和?v = 8之间的/)
我试过从条件中排除"捆绑",但我没有运气.
我想知道如何从条件中排除某些路径(并非我的所有捆绑包都在路径上使用"捆绑包")或者可能是一个更简单的规则,允许我为我需要关心的唯一情况添加尾部斜杠about:当用户忘记在我的应用程序网址末尾输入它时.
谢谢,R.
UPDATE
我刚刚向我的主控制器添加了一个永久重定向条件 - 一个更容易被用户直接在地址栏上输入的控制器.这是解决我的问题.我打开这个问题,万一有人通过调整路由引擎或使用URL Rewrite来提出更好的想法.
这是代码:
public ActionResult Index()
{
if (!Request.Path.EndsWith("/"))
return RedirectPermanent(Request.Url.ToString() + "/");
return View();
}
Run Code Online (Sandbox Code Playgroud)