2015-10-15 93 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> 

现在一切正如你所期望的那样工作。