我在Nancy中提供JavaScript等静态内容时遇到了麻烦.
例如,使用自托管示例我已将一个test.js添加到Views文件夹并添加了一个
<script type="text/javascript" src="test.js"></script>
Run Code Online (Sandbox Code Playgroud)
标记到staticview.html页面.如果我在浏览器中查看此页面,则JavaScript正确执行.
但是,当我运行示例时,JavaScript不会被执行.如果我在FireBug中查看该页面,我发现我收到了test.js的404错误.
我试过添加
Get["{file}"] = p =>
{
string path = string.Format("Views/{0}", p.file);
return Response.AsJs(path);
};
Run Code Online (Sandbox Code Playgroud)
当我设置一个断点并在即时窗口中执行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"));
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Chr*_*man 37
您可以使用配置静态内容NancyConventions.使用以下引导程序中的代码,您可以将所有静态内容(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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
完成此操作后,您可以访问脚本等静态内容
<script type="text/javascript" src="/static/test.js"></script>
Run Code Online (Sandbox Code Playgroud)
或者css
<link rel="stylesheet" type="text/css" href="/static/styles.css">
Run Code Online (Sandbox Code Playgroud)
JOG*_*JOG 30
如果没有特殊原因,则无需配置任何约定.
Nancy ...附带一个默认约定,它将在
content应用程序的路径中查找文件 .
我通过这样做实现了同样的目标:
<script type="text/javascript" src="content/test.js"></script>
| 归档时间: |
|
| 查看次数: |
16071 次 |
| 最近记录: |