VahidN / DNTIdentity

A highly customized sample of the ASP.NET Core Identity

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

عدم سرو شدن فایل های استاتیک زمان پابلیش

minaakh opened this issue · comments

سلام
فایل های استاتیک من در زمان دولوپ مشکلی ندارن و همه سرو میشن ولی وقتی پابلیش میکنم دیگه فایل های استاتیک سرو نمیشن و خطای 410 داده میشه و اونها رو پیدا نمیکنه.

همین طور من به جای
bower.json
اومدم از
package.json
هم استفاده کردم و دستور
npm i
رو زدم و بعد
bundleconfig.json
رو بر مبنای
node_modules
به روز کردم و در نهایت هم

app.UseFileServer(new FileServerOptions
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "bower_components")),
                RequestPath = "/bower_components",
                EnableDirectoryBrowsing = false
            });

رو به

app.UseFileServer(new FileServerOptions
            {
                FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")),
                RequestPath = "/wwwroot",
                EnableDirectoryBrowsing = false
            });

تغییر دادم چون اگر از

   RequestPath = "/bower_components",

یا

   RequestPath = "/node_modules",

استفاده میکردم زمان پابلیش خطا میداد که فولدر وجود نداره

ولی در این 2 حالت هم باز فایل های استاتیک سرو نمیشن

دستور زير را در ريشه‌ي پروژه‌ي وب اجرا كنيد

dotnet publish -c Release

اين دستور خطاهاي احتمالي را نمايش مي‌دهد و در اينجا محل پوشه‌ي نود در فايل آغازين برنامه اهميتي ندارد چون باندلر فقط دو فايل
wwwroot\js
wwwroot\css
را توليد مي‌كند و برنامه فقط از اين دو فايل استفاده مي‌كند. اگر تنظيمات باندلر را صحيح وارد نكرده باشيد، اين دو فايل توليد نمي‌شوند

ممنون ولی با دستور فوق هم خطا ندارم و فقط وارنینگ دارم
تنظیمات باندلر رو هم تغییری داخلش ندادم

با دستور

dotnet boxilink.dll

داخل فولدر پابلیش خطای

Unhandled Exception: System.ArgumentException: The directory name D:\Projects\BoxiLink\src\Boxilink\bin\Release\netcoreapp2.0\publish\node_modules\ is invalid.
Parameter name: path
   at System.IO.FileSystemWatcher..ctor(String path, String filter)
   at System.IO.FileSystemWatcher..ctor(String path)
   at Microsoft.Extensions.FileProviders.PhysicalFileProvider.CreateFileWatcher(String root)
   at Boxilink.Startup.Configure(ILoggerFactory loggerFactory, IApplicationBuilder app, IHostingEnvironment env) in D:\Projects\BoxiLink\src\Boxilink\Startup.cs:line 100
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Hosting.ConventionBasedStartup.Configure(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
   at Microsoft.AspNetCore.Hosting.WebHostBuilder.Build()
   at Boxilink.Program.Main(String[] args) in D:\Projects\BoxiLink\src\Boxilink\Program.cs:line 13

داده میشه که برای همین من مجبورم

app.UseFileServer(new FileServerOptions
          {
              FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "bower_components")),
              RequestPath = "/bower_components",
              EnableDirectoryBrowsing = false
          });

یا

app.UseFileServer(new FileServerOptions
          {
              FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "node_modules")),
              RequestPath = "/node_modules",
              EnableDirectoryBrowsing = false
          });

رو به

app.UseFileServer(new FileServerOptions
          {
              FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), "wwwroot")),
              RequestPath = "/wwwroot",
              EnableDirectoryBrowsing = false
          });

تغییر بدم
که در این صورت هم خطای 410 برای فایل های استاتیک داده میشه

تنظيمات فايل پروايدر اينجا اساسا اضافي هستند چون فايل layout برنامه فقط دو فايل زير را استفاده مي‌كند

css/site.min.css
js/site.min.js

اين دو فايل هم حاصل كار باندلر هستند و مطلقا نيازي به پابليش پوشه‌ي اضافي ديگري نيست. همينقدر كه اين دو فايل را در wwwroot داشته باشيد، برنامه كار مي‌كند.
تنظيمات اضافه‌تر را هم حذف كنيد

بنابراين شما بايد بررسي كنيد كه چه فايل‌هايي در فايل layout مدخلي دارند. در اينجا فقط و فقط اين دو فايل هستند كه حاصل پردازش و يكي كردن ده‌ها فايل از مسيرهاي مختلف هستند
اين دو فايل بايد در پابليش نهايي حضور داشته باشند و مطابق آزمايش من حضور دارند

پروژه براي استفاده از ان پي ام به روز شد

commented

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related problems.