Apa rekomendasi terakhir / terbaik untuk cara melayani favicon.ico di ASP.NET MVC?
Saat ini saya melakukan hal berikut:
Menambahkan entri ke bagian paling awal metode RegisterRoutes saya:
routes.IgnoreRoute("favicon.ico");
Menempatkan favicon.ico di root aplikasi saya (yang juga akan menjadi root dari domain saya).
Saya punya dua pertanyaan:
- Apakah tidak ada cara untuk meletakkan favicon.ico di tempat lain selain dari akar aplikasi saya. Cukup menjengkelkan karena berada di sana pada tingkat yang sama dengan
Content
danControllers
. Apakah
IgnoreRoute("favicon.ico")
pernyataan ini cukup - atau haruskah saya juga melakukan hal berikut seperti yang dibahas dalam posting blog dari Phil Haack . Saya tidak sadar pernah melihat permintaan ke favicon.ico di direktori apa pun selain root - yang akan membuat ini tidak perlu (tapi ada baiknya mengetahui cara melakukannya).routes.IgnoreRoute("{*favicon}", new {favicon=@"(.*/)?favicon.ico(/.*)?"});
asp.net
asp.net-mvc
razor
favicon
Simon_Weaver
sumber
sumber
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*[/\\])?favicon\.((ico)|(png))(/.*)?" });
routes.MapRoute("IgnoreFavicon", "{*favicon}", new { favicon = @"(.*[/\\])?favicon\.((ico)|(png))(/.*)?" });
routes.MapRoute("Ingore", "{*favicon}", new { }, new { favicon = @"(.*[/\\])?favicon\.((ico)|(png))(/.*)?" });
Pemberitahuan Rutenew {}
,Jawaban:
Menempatkan favicon.ico di root domain Anda hanya benar-benar memengaruhi IE5, IIRC. Untuk browser yang lebih modern, Anda harus dapat menyertakan tag tautan untuk mengarahkan ke direktori lain:
Anda juga dapat menggunakan file non-ico untuk browser selain IE, yang mungkin saya gunakan pernyataan kondisional berikut untuk melayani PNG ke FF, dll, dan ICO ke IE:
sumber
Saya setuju dengan jawaban dari Chris, tetapi melihat ini adalah pertanyaan ASP.NET MVC tertentu akan lebih baik untuk menggunakan sintaks Razor:
Atau secara tradisional
daripada
sumber
1) Anda dapat meletakkan favicon di tempat yang Anda inginkan dan menambahkan tag ini ke kepala halaman Anda
walaupun beberapa browser akan mencoba untuk mendapatkan favicon dari /favicon.ico secara default, jadi Anda harus menggunakan IgnoreRoute.
2) Jika browser membuat permintaan untuk favicon di direktori lain, ia akan mendapatkan kesalahan 404 yang baik-baik saja dan jika Anda memiliki tag tautan pada jawaban 1 di halaman master Anda, browser akan mendapatkan favicon yang Anda inginkan.
sumber
Saya pikir favicon.ico harus di folder root. Itu hanya milik di sana.
Jika Anda ingin servere ikon yang berbeda - masukkan ke dalam pengontrol. Kamu bisa melakukannya. Jika tidak - tinggalkan saja di folder root.
sumber
Tak satu pun dari yang di atas bekerja untuk saya. Saya akhirnya memecahkan masalah ini dengan mengganti nama favicon.ico ke myicon.ico, dan merujuknya di kepala
<link rel="icon" href="~/myicon.ico" type="image/x-icon" />
sumber
Seharusnya juga dimungkinkan untuk membuat controller yang mengembalikan file ico dan mendaftarkan rute /favicon.ico untuk menunjuk ke controller itu.
sumber
Yang perlu Anda lakukan adalah menambahkan
app.UseStaticFiles();
startup.cs Anda ->public void Configure(IApplicationBuilder app, IHostingEnvironment env)
.Inti ASP.net menyediakan cara terbaik untuk mendapatkan file statis. Itu menggunakan folder wwwroot. Silakan baca file-file statis di ASP.NET Core .
Menggunakan
<Link />
itu bukan ide yang sangat bagus. Mengapa seseorang menambahkan tag tautan pada setiap HTML atau cshtml untuk favicon.ico?sumber
Gunakan ini alih-alih hanya favicon.ico yang cenderung mencari file ikon fav
Gunakan jalur yang diminta dan kombinasikan dengan file ikon fav sehingga mendapatkan alamat akurat yang dicari
Menggunakan ini memecahkan kesalahan Fav.icon yang dimunculkan selalu pada Application_Error
sumber
Menemukannya di .Net Core, menempatkan favicon.ico di / lib daripada wwwroot memperbaiki masalah
sumber