This my first .net Core application. And Having issue .Well the issue is that I was adding new template to exist application and Google Console showing error that can not able to find CSS and JS
**
**
{
"ConnectionStrings": {
"DefaultConnection": "Server=.;Database=MusicSite;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"dependencies": {
"bootstrap": "3.3.6",
"jquery": "2.2.0"
}
}
All the CSS and Js folder are included in the Solution
Error which I am getting in Console App
**
**
**
**
<!-- style -->
<link rel="stylesheet" href="css/animate.css/animate.min.css" type="text/css" />
<link rel="stylesheet" href="css/glyphicons/glyphicons.css" type="text/css" />
<link rel="stylesheet" href="css/font-awesome/css/font-awesome.min.css" type="text/css" />
<link rel="stylesheet" href="css/material-design-icons/material-design-icons.css" type="text/css" />
<link rel="stylesheet" href="css/bootstrap/dist/css/bootstrap.min.css" type="text/css" />
<!-- build:css css/styles/app.min.css -->
<link rel="stylesheet" href="css/styles/app.css" type="text/css" />
<link rel="stylesheet" href="css/styles/style.css" type="text/css" />
<link rel="stylesheet" href="css/styles/font.css" type="text/css" />
<link rel="stylesheet" href="libs/owl.carousel/dist/assets/owl.carousel.min.css" type="text/css" />
<link rel="stylesheet" href="libs/owl.carousel/dist/assets/owl.theme.css" type="text/css" />
<link rel="stylesheet" href="libs/mediaelement/build/mediaelementplayer.min.css" type="text/css" />
<link rel="stylesheet" href="libs/mediaelement/build/mep.css" type="text/css" />
<!-- endbuild -->
<script src="libs/jquery/dist/jquery.js"></script>
<!-- Bootstrap -->
<script src="libs/tether/dist/js/tether.min.js"></script>
<script src="libs/bootstrap/dist/js/bootstrap.js"></script>
<!-- core -->
<script src="libs/jQuery-Storage-API/jquery.storageapi.min.js"></script>
<script src="libs/jquery.stellar/jquery.stellar.min.js"></script>
<script src="libs/owl.carousel/dist/owl.carousel.min.js"></script>
<script src="libs/jscroll/jquery.jscroll.min.js"></script>
<script src="libs/PACE/pace.min.js"></script>
<script src="libs/jquery-pjax/jquery.pjax.js"></script>
<script src="libs/mediaelement/build/mediaelement-and-player.min.js"></script>
<script src="libs/mediaelement/build/mep.js"></script>
<script src="scripts/player.js"></script>
<script src="scripts/config.lazyload.js"></script>
<script src="scripts/ui-load.js"></script>
<script src="scripts/ui-jp.js"></script>
<script src="scripts/ui-include.js"></script>
<script src="scripts/ui-device.js"></script>
<script src="scripts/ui-form.js"></script>
<script src="scripts/ui-nav.js"></script>
<script src="scripts/ui-screenfull.js"></script>
<script src="scripts/ui-scroll-to.js"></script>
<script src="scripts/ui-toggle-class.js"></script>
<script src="scripts/ui-taburl.js"></script>
<script src="scripts/app.js"></script>
<script src="scripts/site.js"></script>
<script src="scripts/ajax.js"></script>
<!-- endbuild -->
**
**
namespace MusicSite
{
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
if (env.IsDevelopment())
{
// For more details on using the user secret store see https://go.microsoft.com/fwlink/?LinkID=532709
builder.AddUserSecrets<Startup>();
}
builder.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
services.AddMvc();
// Add application services.
services.AddTransient<IEmailSender, AuthMessageSender>();
services.AddTransient<ISmsSender, AuthMessageSender>();
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseStaticFiles();
// Add MVC to the request pipeline.
app.UseMvc();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseDatabaseErrorPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseStaticFiles();
app.UseIdentity();
// Add external authentication middleware below. To configure them please see https://go.microsoft.com/fwlink/?LinkID=532715
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}
In ASP.NET core, by default, static files are served from only the wwwroot
folder. That means if you try to access a file from Libs
directory, it won't work.
The good news is, You can configure the static file location as you wish. So update your Configure
method in startup.cs
.
public void Configure(IApplicationBuilder app, IHostingEnvironment env,
ILoggerFactory loggerFactory)
{
// Your existing code goes here
app.UseStaticFiles();
// This will add "Libs" as another valid static content location
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"Libs")),
RequestPath = new PathString("/libs")
});
}
The PhysicalFileProvider
class is defined in the Microsoft.Extensions.FileProviders
namespace. So you should add a using statement to that in your Startup.cs
class.
using Microsoft.Extensions.FileProviders;
Now the files can be accessed from yourSiteName/libs/somejsfile.js
. Also, prefix your path to these scripts with ~/
. The tilda(~
) signs tells that it is the app root.
<script src="~/libs/jquery/dist/jquery.js"></script>
As i mentioned earlier, the wwwroot
is a special folder to keep your static assets together. So you may also consider moving your libs
directory under wwwwroot
and then everything should work fine, without the above mentioned custom configuration.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With