Tất cả các ví dụ về việc sử dụng AngularJs với MVC6 / vNext / .NET5 đều sử dụng tệp index.html tĩnh nằm trong wwwroot. Đã xong, nhưng bây giờ tôi cần tải trang MVC index.cshtml để thay vào đó tôi có thể đưa các cài đặt có trong config.json của mình vào trang.
Tất cả những gì tôi muốn là một trang mặc định (Trang chủ), được tải bất kể url nào được yêu cầu, miễn là url đó không phải là tệp js / css hoặc bộ điều khiển api.
Tôi đã thử thêm Configure(IApplicationBuilder app, IServiceProvider serviceProvider)
tệp này vào phương pháp của mình , nhưng bây giờ, các tệp js và css của tôi đều kéo trở lại tệp Home / Index.cshtml
app.UseMvc(options =>
{
options.MapRoute("Api",
template: "api/{version}/{controller}/{action?}",
defaults: new { version = "v1", controller = "Page" });
options.MapRoute(
name: "default",
template: "{*url}",
defaults: new { controller = "Home", action = "Index" });
});
Ứng dụng của tôi tải lên trên địa chỉ mặc định http: // localhost: port , không có thư mục bổ sung nào để bắt đầu. Thông qua angleJ, người dùng có thể truy cập các url như
http://localhost:6000/page
http://localhost:6000/page/9
http://localhost:6000/another
http://localhost:6000/another/9/sub
Tất cả những thứ này sẽ tải trang Home / Index.cshtml và để góc tiếp quản việc định tuyến.
Tôi đã thấy một tùy chọn để thêm thứ gì đó vào tệp web.config, nhưng tôi sẽ không sử dụng IIS nên đây không phải là một tùy chọn
CHỈNH SỬA Nếu tôi cập nhật các tuyến đường của mình cho điều này, nó dường như tải trang và tất cả các tệp js / css, điều này thật tuyệt. Nhưng nếu tôi cố gắng đi thẳng đến một tuyến đường góc, không có gì tải cả.
app.UseMvc(options =>
{
options.MapRoute("Api",
template: "api/{version}/{controller}/{action?}",
defaults: new { version = "v1", controller = "Page" });
options.MapRoute(
name: "default",
template: "{controller}/{action?}",
defaults: new { controller = "Home", action = "Index" });
});
CHỈNH SỬA 2
public void Configure(IApplicationBuilder app, IServiceProvider serviceProvider)
{
// add automapper registrations
app.RegisterMappingFiles();
// Enable all static file middleware
app.UseStaticFiles();
// Enable Mvc for controllers
app.UseMvc(options =>
{
options.MapRoute(
name: "default",
template: "{controller}/{action?}",
defaults: new { controller = "Home", action = "Index" });
});
}