我正在尝试使用ASP.NET MVC 4应用程序进行ASP.NET Bundling.情况是我想制作一个CDN样式的服务,它有JS和CSS文件,您可以从其他类型地址的网站处理:http://www.mycdn.com/scripts/plugin/js,捆绑并缩小所有包含的.js文件.
我对一个文件的bundle配置如下所示:
bundles.Add(new ScriptBundle("~/Scripts/plugin/pluginjs").Include("~/Scripts/plugin/jquery.plugin.js"));
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,即使我更改原始js文件后,捆绑包也不会更新.当我刷新浏览器时,我继续获得304 Not Modified,并且不会更新缩小文件的内容.如何更新捆绑包,因为捆绑旧内容是没用的?我尝试了各种方法,但无法找到解决方案.
提前致谢!
asp.net bundle bundling-and-minification asp.net-optimization
我正在尝试使用MVC4捆绑来对一些较少的文件进行分组,但看起来我正在使用的导入路径已关闭.我的目录结构是:
static/
less/
mixins.less
admin/
user.less
Run Code Online (Sandbox Code Playgroud)
在user.less中,我正在尝试使用以下方法导入mixins.less:
@import "../mixins.less";
Run Code Online (Sandbox Code Playgroud)
这曾经在我使用chirpy和无点之前为我工作,但现在我注意到ELMAH对我生气,说:
System.IO.FileNotFoundException:
You are importing a file ending in .less that cannot be found.
File name: '../mixins.less'
Run Code Online (Sandbox Code Playgroud)
我应该@import
和MVC4 使用不同的吗?
这是我用来尝试这个的较少的类和global.asax.cs代码:
LessMinify.cs
...
public class LessMinify : CssMinify
{
public LessMinify() {}
public override void Process(BundleContext context, BundleResponse response)
{
response.Content = Less.Parse(response.Content);
base.Process(context, response);
}
}
...
Run Code Online (Sandbox Code Playgroud)
Global.asax.cs
...
DynamicFolderBundle lessFB =
new DynamicFolderBundle("less", new LessMinify(), "*.less");
BundleTable.Bundles.Add(lessFB);
Bundle AdminLess = new Bundle("~/AdminLessBundle", new LessMinify());
...
AdminLess.AddFile("~/static/less/admin/user.less");
BundleTable.Bundles.Add(AdminLess); …
Run Code Online (Sandbox Code Playgroud) 我通过Visual Studio 2012创建了一个新的ASP.NET Web窗体项目.不幸的是,默认的Site.Master文件非常混乱.(我将这些问题一起发布,因为它们非常相关并且引用了相同的代码.)
首先,我已经了解了捆绑和缩小的目的,因此无需讨论.但是我不明白脚本被包含在默认母版页中的方式.
问题1:
为什么在BundleConfig.cs文件中创建了一个名为"〜/ bundles/WebFormsJs"的包,但是在主页中,这些相同的单个.js文件中的每一个都在ScriptManager中逐一列出?
在BundleConfig.cs中:
bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include(
"~/Scripts/WebForms/WebForms.js",
"~/Scripts/WebForms/WebUIValidation.js",
"~/Scripts/WebForms/MenuStandards.js",
"~/Scripts/WebForms/Focus.js",
"~/Scripts/WebForms/GridView.js",
"~/Scripts/WebForms/DetailsView.js",
"~/Scripts/WebForms/TreeView.js",
"~/Scripts/WebForms/WebParts.js"));
Run Code Online (Sandbox Code Playgroud)
Inside Site.Master:
<body>
<form runat="server">
<asp:ScriptManager runat="server">
<Scripts>
<%--Framework Scripts--%>
<asp:ScriptReference Name="MsAjaxBundle" />
<asp:ScriptReference Name="jquery" />
<asp:ScriptReference Name="jquery.ui.combined" />
<asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
<asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
<asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
<asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
<asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
<asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
<asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
<asp:ScriptReference …
Run Code Online (Sandbox Code Playgroud) 我想知道我在这里做的不正确.我正在使用ASP.NET C#MVC4,我想使用新的css/js优化功能.
这是我的HTML部分
@Styles.Render("~/content/css")
Run Code Online (Sandbox Code Playgroud)
这是我的BunduleConfig.cs
一部分
bundles.Add(new StyleBundle("~/content/css").Include(
"~/content/css/reset.css",
"~/content/css/bla.css"));
// BundleTable.EnableOptimizations = true;
Run Code Online (Sandbox Code Playgroud)
输出(工作):
<link href="/content/css/reset.css" rel="stylesheet"/>
<link href="/content/css/bla.css" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
但是当我取消注释BundleTable.EnableOptimizations = true;
html输出时看起来像这样
<link href="/content/css?v=5LoJebKvQJIN-fKjKYCg_ccvmBC_LF91jBasIpwtUcY1" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
这当然是404.我不知道我做错了什么,请帮助,第一次使用MVC4.
HTML5具有脚本文件的异步属性,以启用异步加载.
<script type="text/javascript" src="myScript.js" async></script>
Run Code Online (Sandbox Code Playgroud)
我可以通过引用我的MVC4捆绑来利用这一点,就像这样引用捆绑包.
<script type="text/javascript" src='@Scripts.Url("~/bundles/jquery")' async></script>
Run Code Online (Sandbox Code Playgroud)
但这意味着我的脚本即使在调试模式下也是捆绑在一起的.
那么我怎样才能在调试时利用捆绑和异步属性而不会失去非缩小.
html5 asp.net-mvc-4 bundling-and-minification asp.net-optimization
我正在尝试使用Twitter引导程序在MVC 4中使用新的捆绑功能,在我看来,像css的字形png文件的路径以某种方式搞砸了.继承我的代码:
bundles.Add(new StyleBundle("~/bundles/publiccss").Include(
"~/Static/Css/bootstrap/bootstrap.css",
"~/Static/Css/bootstrap/bootstrap-padding-top.css",
"~/Static/Css/bootstrap/bootstrap-responsive.css",
"~/Static/Css/bootstrap/docs.css"));
bundles.Add(new ScriptBundle("~/bundles/publicjs").Include(
"~/Static/Js/jquery-1.7.2.js",
"~/Static/Js/bootstrap/bootstrap.js",
"~/Static/Js/cookie/jquery.cookie.js"));
Run Code Online (Sandbox Code Playgroud)
我没有在按钮上看到任何图标,同样如此.我在这里做错了吗?有什么建议?
asp.net asp.net-mvc-4 twitter-bootstrap bundling-and-minification asp.net-optimization
我正在尝试在VS 2013预览中使用新的MVC5框架.
会员身份验证框架已经过彻底检查并替换为OWin
.
特别是,我打开了外部身份验证提供程序Google auth.
这很简单.
只需取消注释这一行: app.UseGoogleAuthentication();
在新的默认MVC项目的App_Start目录中的Startup.Auth.cs文件中.
因此,我希望访问来自身份验证提供程序的"额外数据",例如用户的头像的URL以显示在我的应用程序中.
在针对asp.net成员资格提供程序的旧OAuth实现下,有一种方法可以使用此处的ExtraData字典来捕获它:ProviderDetail.ExtraData属性.
我找不到关于OAuth和OWin如何协同工作以及如何访问这些额外数据的文档.
任何人都可以开导我吗?
asp.net-mvc owin visual-studio-2013 asp.net-mvc-5 asp.net-identity
如何实现自动注销计时器.
所以基本上如果用户在x分钟内处于非活动状态,他们的会话结束了
我试过了:
<system.web>
<sessionState timeout="1"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
但它似乎没有用.
这是我的启动中的代码:
public void ConfigureAuth(IAppBuilder app)
{
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});
}
Run Code Online (Sandbox Code Playgroud)
这说我正在使用cookie身份验证.所以,如果我能做到,我不会做什么.
asp.net-mvc asp.net-authentication owin asp.net-mvc-5 asp.net-identity
我正在使用Asp-Team 的ASP.NET Identity Sample,我正在尝试更改数据库IdentityDbContext
...
我用构造函数试了一下
public MyDbContext() : base("MyConnectionString") { } // base is IdentityDbContext
Run Code Online (Sandbox Code Playgroud)
和DbContext类一样.
这很有效,直到我尝试注册用户...
await IdentityStore.CreateLocalUser(user, model.Password)
Run Code Online (Sandbox Code Playgroud)
返回false
......没有错误,没有.
任何想法如何解决?
编辑:
文件名是Models\AppModel.cs
,有MyDbContext class
原来是
public class MyDbContext : IdentityDbContext<MyUser, UserClaim, UserSecret, UserLogin, Role, UserRole>
{
}
Run Code Online (Sandbox Code Playgroud)
我改成了
public class MyDbContext : IdentityDbContext<MyUser, UserClaim, UserSecret, UserLogin, Role, UserRole>
{
public MyDbContext() : base("MyConnectionString") { }
}
Run Code Online (Sandbox Code Playgroud)
连接字符串正在工作,因为我有其他项目使用相同,他们运行正常.
<connectionStrings>
<add name="MySailorContext" connectionString="Data Source=THOMAS-LAPTOP;Initial Catalog=MySailor;Integrated Security=True;Pooling=False;MultipleActiveResultSets=true" providerName="System.Data.SqlClient"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud) 我想更改从捆绑请求发送的缓存标头.目前它是变化的,User-Agent
但我不希望它,有没有办法更改捆绑请求发送的标头?
快速查看System.Web.Optimization
程序集后,我可以看到标题设置在Bundle.SetHeaders
一个私有静态函数中,所以我认为它不可能,尽管我希望被证明是错误的.
c# asp.net asp.net-mvc-4 bundling-and-minification asp.net-optimization