我在Nancy中提供静态内容(例如JavaScript)时遇到了麻烦。
例如,使用self hosting sample我将test.js添加到了Views文件夹中,并添加了一个
<script type="text/javascript" src="test.js"></script>
标记到staticview.html页面。如果我在浏览器中查看此页面,则JavaScript正确执行。
但是,当我运行示例时,未执行JavaScript。如果我在FireBug中查看页面,则会看到test.js出现404错误。
我尝试添加
Get["{file}"] = p =>
{
string path = string.Format("Views/{0}", p.file);
return Response.AsJs(path);
};
当我设置一个断点并在立即窗口中执行Response.AsJs(path)时,我得到一个NotFound的StatusCode
我也尝试过添加StaticContentConvention,例如
protected override void ConfigureConventions(NancyConventions conventions)
{
base.ConfigureConventions(conventions);
conventions.StaticContentsConventions.Add(
StaticContentConventionBuilder.AddDirectory("/", "Views"));
conventions.StaticContentsConventions.Add(
StaticContentConventionBuilder.AddDirectory("Views", "Views"));
}
我究竟做错了什么?
最佳答案
您可以使用NancyConventions
配置静态内容。使用以下 bootstrap 中的代码,您可以将所有静态内容(css / js / html / etc)放在应用程序根目录下名为“static”的文件夹中。
namespace Application
{
public class ApplicationBootstrapper : DefaultNancyBootstrapper
{
protected override void ConfigureConventions(NancyConventions nancyConventions)
{
nancyConventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("Static", @"Static"));
base.ConfigureConventions(nancyConventions);
}
}
}
完成此操作后,您可以访问静态内容,例如脚本
<script type="text/javascript" src="/static/test.js"></script>
或CSS
<link rel="stylesheet" type="text/css" href="/static/styles.css">
关于nancy - 如何在南希转换静态内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13270163/