我正在启动一个新的 MVC4 站点并且遇到了很大的麻烦,我相信路线。
这一切都在 Cassini 本地工作,但在我的生产 WIN 2012 服务器上不起作用。
似乎类似的问题已经一次又一次地得到了回答;我要么错过了显而易见的事情,要么走错了路。
我看到的两个问题是我的 LESS CSS 没有加载。其他像引导程序这样的 CSS 加载正常。我认为 MVC 尝试处理更少的 js 请求可能是一个问题,但来自同一 Scripts 文件夹的其他 js 工作正常。我整天都在尝试各种 IgnoreRoutes 无济于事。目前:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("Content/{*pathInfo}");
routes.IgnoreRoute("Scripts/{*pathInfo}");
RouteTable.Routes.IgnoreRoute("{resource}.css/{*pathInfo}");
RouteTable.Routes.IgnoreRoute("{resource}.js/{*pathInfo}");
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("ImageDisplay.aspx/{*pathInfo}");
routes.IgnoreRoute("elmah.axd");
routes.IgnoreRoute("FeedFiles/{*pathInfo}");
...
不确定它是否真实,但我有一个图像处理程序 ImageDisplay.aspx。
<httpHandlers>
<add verb="*" path="ImageDisplay.aspx" type="BK9.PL.Utility.ImageHandler, BK9.PL" />
</httpHandlers>
这也因 404 失败,但在本地运行良好。
我错过了什么?
更新 - - - - - - - - - - -
事实证明,图像处理程序对 IIS 8 的配置不正确——我在 system.web 部分中对其进行了配置——将它移到 system.webserver 后,我就喜欢上了它。
正如我开始怀疑的那样,挖掘路线是完全错误的道路。更少的问题原来是一个无点编译问题。
这是 dotless 1.3.1.0 的正确编译后编译:
del "$(ProjectDir)Content\BK9.css"
"$(SolutionDir)packages\dotless.1.3.1.0\tool\dotless.compiler.exe" -m "$(ProjectDir)Content\BK9.less" "$(ProjectDir)Content\BK9.css"
这会删除最后一个 css,并编译一个新的缩小版本。似乎需要删除命令后的换行符。