2015-10-15 55 views
0

我遇到了一個與我正在處理的站點有關的問題.css拋出404錯誤,並且現在一直給我提供問題。我最近使用IIS10在我的機器上本地託管了一個Laravel 5站點。我有存儲在/視圖/佈局(layout.blade.php)主佈局,其中包括我喜歡這個樣式表:IIS沒有爲Laravel站點提供.css&.js文件

<head> 
    ... 

    <link href="{{URL::asset('css/bootstrap.min.css')}}" rel="stylesheet" /> 
    <link href="{{URL::asset('css/font-awesome.min.css')}}" rel="stylesheet" /> 
    <link href="{{URL::asset('css/prettyPhoto.css')}}" rel="stylesheet" /> 
    <link href="{{URL::asset('css/price-range.css')}}" rel="stylesheet" /> 
    <link href="{{URL::asset('css/animate.css')}}" rel="stylesheet" /> 
    <link href="{{URL::asset('css/main.css')}}" rel="stylesheet" /> 
    <link href="{{URL::asset('css/responsive.css')}}" rel="stylesheet" /> 

    ... 
</head> 

現在,如果我打開瀏覽器,然後導航到http://localhost/test_site/public/我所有的意見出現SANS任何造型。開放的開發工具有七個錯誤,指出:

HTTP404: NOT FOUND - The server has not found anything matching the requested URI. (XHR): GET - http://localhost/test_site/public/css/<filename>.css 

我很困惑,爲什麼如果被證明的CSS文件的路徑是正確的,那麼爲什麼不是渲染爲你希望它至。我最初的想法是,有我的web.config文件,這是我作爲一個問題:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
    <system.webServer> 
     <staticContent> 
      <remove fileExtension=".css" /> 
      <mimeMap fileExtension=".css" mimeType="text/css" /> 

      <remove fileExtension=".js" /> 
      <mimeMap fileExtension=".js" mimeType="application/javascript" /> 

      <remove fileExtension=".jpg" /> 
      <mimeMap fileExtension=".jpg" mimeType="image/jpeg" /> 

      <remove fileExtension=".png" /> 
      <mimeMap fileExtension=".png" mimeType="image/png" /> 
     </staticContent> 
     <rewrite> 
      <rules> 
       <rule name="Rewrite rule1 for laravel_rewrite"> 
       <match url=".*" /> 
       <conditions> 
        <add input="{laravel_rewrite:{HTTP_HOST}}" pattern="(.+)" /> 
       </conditions> 
       <action type="Rewrite" url="{C:1}{REQUEST_URI}" appendQueryString="false" /> 
      </rule> 
      <rule name="Rule 2" stopProcessing="true"> 
       <match url="^" ignoreCase="false" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="/Tutorial/public/" /> 
      </rule> 
      <rule name="Rewrite routed access to assets(img, css, files, js, favicon)" stopProcessing="true"> 
       <match url="^(img|css|files|js|favicon.ico)(.*)$" /> 
       <action type="Rewrite" url="/Tutorial/public/{R:1}{R:2}" appendQueryString="false" /> 
      </rule> 
     </rules> 
     <rewriteMaps> 
      <rewriteMap name="laravel_rewrite"> 
       <add key="localhost" value="/Tutorial/public" /> 
      </rewriteMap> 
     </rewriteMaps> 
    </rewrite> 
</system.webServer> 
</configuration> 

我原本產生的web.config文件(存儲在公共文件夾中)使用URL重寫模塊,但在<staticContent>...</staticContent>和我嘗試解決此問題的第三條規則之間增加了一些內容。

我也認爲這個問題可能與處理程序映射有關,特別是使用*通配符作爲RequestPath的StaticFile。我離開了那一個,但我還用*.css*.js定義了單獨的處理程序,這沒有幫助。

有沒有人有任何建議,我可以嘗試的其他事情?只是爲了澄清,這裏是我的設置一些額外的信息:

  • 的Windows功能Static Content已啓用(我也禁用和重新啓用它作爲其他一些網站的建議)。
  • IUSR具有訪問所有網站文件夾的適當權限。

在此先感謝任何人可以幫助!

回答

0

所以有一些事情上浪費,包括創建每個單獨的文件類型的新的處理程序映射,這樣的事情之後,我刪除了我的web.config並創建了一個新的,已經做了把戲對我來說:

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="Imported Rule 1" stopProcessing="true"> 
       <match url="^(.*)/$" ignoreCase="false" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
       </conditions> 
       <action type="Redirect" redirectType="Permanent" url="public/{R:1}" /> 
      </rule> 
      <rule name="Imported Rule 2" stopProcessing="true"> 
       <match url="^" ignoreCase="false" /> 
       <conditions> 
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
       </conditions> 
       <action type="Rewrite" url="index.php" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
</configuration> 

現在一切正如你所期望的那樣工作。