Nancy 未能在自定义约定中找到静态内容

2024-01-29

我已经设置了一个 Nancy 引导程序来从非默认目录路径(它是自托管的 Nancy)提供静态内容。

奇怪的是,以下内容适用于自定义视图位置约定,但不适用于 js 或 css 静态内容约定(是的,文件和文件夹都存在于这些位置!)。我尝试解决此问题的尝试进一步复杂化,因为我还没有弄清楚如何记录未找到静态内容时发生的错误。

using System;
using System.IO;

using Nancy;
using Nancy.Conventions;
using Nancy.Bootstrapper;
using Nancy.TinyIoc;

namespace MyApp
{
    public class ApplicationBootstrapper : DefaultNancyBootstrapper
    {

    private const string RELATIVE_PATH_TO_SOURCE = @"../static/MyApp/";

    protected override void ConfigureConventions(NancyConventions nancyConventions)
    {

        nancyConventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("js", string.Concat(RELATIVE_PATH_TO_SOURCE, "Scripts/")));
        nancyConventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("css", string.Concat(RELATIVE_PATH_TO_SOURCE, "Content/")));
        this.Conventions.ViewLocationConventions.Add((viewName, model, context) =>
        {
            return string.Concat(RELATIVE_PATH_TO_SOURCE, "Views/", viewName);
        });
        this.Conventions.ViewLocationConventions.Add((viewName, model, context) =>
        {
            return string.Concat(RELATIVE_PATH_TO_SOURCE, "Views/", context.ModuleName, "/", viewName);
        });

        base.ConfigureConventions(nancyConventions);
    }

    protected override IRootPathProvider RootPathProvider
    {
        get
        {
            return new MyRootPathProvider();
        }
    }

    protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines)
    {
        pipelines.OnError += (ctx, ex) =>
        {
            Console.WriteLine("RootPath : {0}", DebugRootPathProvider.RootPath);
            Console.WriteLine("Unhandled error on request: {0} : {1}", ctx.Request.Url, ex.Message); //HACK
            Console.WriteLine(ex.StackTrace); //HACK poor man's logging
            return null;
        };
    }
}

public class MyRootPathProvider : IRootPathProvider
{
    public static readonly string RootPath;
    static MyRootPathProvider()
    {
        RootPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
    }

    public string GetRootPath()
    {
        return RootPath;
    }
}
}

The output from Chrome and ProcMon is as follows: ProcMon output Google Chrome output

我应该如何:

  1. 未找到 js 和 css 文件时发生日志错误?
  2. 使用静态文件约定解决 404 错误?

您可以使用而不是记录sysinternals进程监视器 http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx并查找 nancy 进程(exe 或 IIS 工作进程)正在尝试读取哪些文件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nancy 未能在自定义约定中找到静态内容 的相关文章

随机推荐

  • @JvmDefault 以及如何添加编译器选项

    我需要做一个default voidKotlin 接口中的方法 我遇到了一个问题 有一个提示说的用法 JvmDefault只允许与 Xjvm default option 我需要在哪里写这个Xjvm default Target Annot
  • 从Unity3D代码启动android服务

    在我的 Android Unity3D 应用程序中 我需要启动一个服务 该服务将在后台运行 我不知道我该怎么做 方法启动服务 必须在活动上调用 但我不知道如何将当前的统一活动从统一脚本传递到我的 android 插件 我还没有找到任何方法以
  • 如何在ggplot中为facet_grid标签包装文本

    我一直在寻找如何换行文本 似乎应该有一种方法可以使用 labeller label wrap gen 3 但我不断收到错误 边距错误 vars 边距 未使用的参数 边距 这是我的代码的一部分 simpson by protected sta
  • 如何使用扩展方法将附加数据与现有对象相关联?

    自 NET Framework 3 5 以来 开发人员已经能够添加可从任何对象类型的实例调用的扩展方法 然而 扩展属性尚未在 C 中实现 与扩展方法不同 扩展属性将涉及为各个对象存储一些额外的状态信息 然而 即使对于扩展方法 在某些编程场景
  • gcc 不接受具有通过嵌套模板化 using 子句定义的非类型模板参数的成员的外线定义

    标题看起来很复杂 但我们的测试用例实际上是真实案例的最小示例 我们有一些代码想要根据模板参数选择方法的实现 我们在清理过程中定义了条件enable if t使用 using 子句 并且下一步想要将定义排除在外 这产生了以下代码 includ
  • 当发生段错误时不调用信号处理程序?

    下面是我的程序的运行方法 出现了由于出现段错误导致程序终止时未调用注册的处理程序的情况 是否存在当发生段错误时可以终止注册的处理程序而无需调用的情况 初始化程序A时 通过signal 函数注册处理程序 SIGSEGV SIGABRT SIG
  • PHP/GD 高斯模糊效果

    我需要使用 PHP 和 GD 混淆图像的某个区域 目前我使用以下代码 for x GET x1 x lt GET x2 x pixel for y GET y1 y lt GET y2 y pixel ImageFilledRectangl
  • Java 通用构建器

    假设我需要一些DerivedBuilder延长一些BaseBuilder 基础构建器有一些方法 例如foo 返回BaseBuilder 派生构建器有方法bar 方法bar应该在方法之后调用foo 为了做到这一点我可以覆盖foo中的方法Der
  • Chrome 的开发工具或 Firebug 中是否存在“设置下一条语句”功能?

    IE 的开发工具 更具体地说是其 JavaScript 调试器 提供 设置下一条语句 命令 使您能够指定接下来应执行哪条语句 这样 您可以有效地跳过函数的某些部分 甚至 再次有效地 提前从函数返回 那么 对于这个函数 function te
  • 如何在iReport中设置整个页面的背景颜色?

    我使用的是 iReport 3 7 4 我想为整个页面设置背景颜色 我没有找到任何背景颜色的报表属性 有人能帮我吗 您可以在以下帮助下解决问题Background Band 我已经把staticText元素上Background Band并
  • 在 Django 管理中,有没有办法显示模型的一对多对象的实际链接列表?

    如果这太复杂或不是正确的做事方式 请随时将我链接到其他内容 或者只是告诉我应该以另一种方式做 基本上 我正在开发一个有客户的项目 每个客户都附加了任意数量的网站 因此 网站模型有一个到客户端模型的外键 网站管理页面非常深入 每个客户端可能有
  • 升级到Xcode4.5 iOS6 Base SDK后运行时异常

    我最近升级了我的代码库以使用 iOS6 Base SDK 我正在使用 XCode 4 5 我只需要将 dylibxml2 2 3 7 更改为 dylibxml2 2 在6 0模拟器上运行良好 我正在使用像 GoogleAnalytics T
  • Celery 无法启动 EOFError('Ran out of input')

    一切都工作得很好 直到 celery beat v3 1 18 Cipater is starting Configuration gt broker gt amqp user staging api user app com 5672 l
  • 将纬度和经度转换为公里

    我正在构建应用程序 我可以在其中获取用户的latitude and longitude使用下面的代码 p Click the button to get your coordinates p
  • 在 Javascript/jQuery 中克隆事件对象[重复]

    这个问题在这里已经有答案了 如何创建一个完全独立的新事件对象 其中包含与给定事件对象完全相同的所有属性e 到目前为止 我已经尝试过以下方法 但没有运气 function myHandler e e e originalEvent metho
  • React+Flux:通知视图/组件操作失败?

    我正在编写一个注册表组件 当表单提交时 它会触发创建用户操作 createUser 操作通过 ajax api 调用创建一个新用户 如果用户已存在 则触发的用户操作将失败 我们知道我们无法从 ajax 调用返回响应 我们需要一个回调 我如何
  • 使用 Flexbox 填充剩余空间

    我希望中间行像其他网站一样填满整个浏览器 所以即使内容很少 我也希望中间的行填满整个空间 这是CSS import compass css3 wrapper display webkit box display moz box displa
  • 如何在 Tkinter 中将小部件放置在 Canvas 小部件中?

    我基本上希望能够使用Canvas作为其他小部件的元容器 我想将我的 GUI 分为左侧 中间和中间部分 在每个部分中我希望能够place小部件如 Checkbutton Button Label etc 如何将小部件放置在 Canvas 小部
  • 什么是大 O 表示法? [复制]

    这个问题在这里已经有答案了 可能的重复 大O的简单英语解释 https stackoverflow com questions 487258 plain english explanation of big o 我知道 Big O 表示法用
  • Nancy 未能在自定义约定中找到静态内容

    我已经设置了一个 Nancy 引导程序来从非默认目录路径 它是自托管的 Nancy 提供静态内容 奇怪的是 以下内容适用于自定义视图位置约定 但不适用于 js 或 css 静态内容约定 是的 文件和文件夹都存在于这些位置 我尝试解决此问题的