【问题标题】:Phalcon Routing exclude Routing to Controllers when File Exists当文件存在时,Phalcon 路由排除到控制器的路由
【发布时间】:2019-02-13 02:29:23
【问题描述】:

我在 assets 文件夹下直接有一些 css .map 文件,但是由于某种原因它们无法加载,并且我在调度程序和路由器中收到 404 错误。有关如何解决此问题的任何解决方案?我在路由器中添加了以下配置,但仍然出现错误。

$router->add(
    '/assets/css/dashboard-free.css.map'
); 

错误日志显示

example.com/assets/css/dashboard-free.css.map: 
2019-02-13 07:02:58: 
Phalcon\Mvc\Dispatcher\Exception: IndexController handler class cannot be loaded
 File=/var/.../Module.php
 Line=27
#0 [internal function]: Phalcon\Mvc\Dispatcher->_throwDispatchException('IndexController...', 2)
#1 [internal function]: Phalcon\Dispatcher->dispatch()
#2 /var/.../Module.php(27): Phalcon\Mvc\Application->handle()
#3 /var/.../web/index.php(12): Admin\Module->main()
#4 {main}

【问题讨论】:

    标签: phalcon phalcon-routing


    【解决方案1】:

    阿帕奇

    在你的 .htaccess 文件中试试这个

    AddDefaultCharset UTF-8
    
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.+)\.(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1.$3 [L]
    
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
    </IfModule>
    

    nginx

    location ~* (.+)\.(?:\w+)\.(bmp|css|cur|gif|ico|jpe?g|m?js|png|svgz?|webp|webmanifest)$ {
      try_files $uri $1.$2;
    }
    

    【讨论】:

    • 我正在使用 nginx。我也希望在不进行服务器配置的情况下解决这个问题。在代码本身内
    • 我不认为你能做到这一点,除非你在你的index.php 中放一个很长的if 语句,这是你的应用程序忽略这些文件并将它们直接流式传输到的起点客户端。在这两种情况下,与让网络服务器处理相比,您的处理成本都会很高。
    • 使用路由器,您还可以使用一些“智能”正则表达式来检测这些文件(css/js 等)并将所有这些请求转发到一个控制器/动作,然后将响应立即发送回呼叫者,召集者。尽管如此,你还是会浪费周期。
    • 我添加了 nginx 示例。
    【解决方案2】:

    我认为这与 phalcon 或 php 无关 我会检查 css 文件中的地图路径

    /*# sourceMappingURL=dashboard-free.css.map */
    

    【讨论】:

      猜你喜欢
      • 2016-04-05
      • 2017-08-18
      • 1970-01-01
      • 2015-10-09
      • 2016-07-12
      • 1970-01-01
      • 2016-11-19
      • 2015-01-13
      • 1970-01-01
      相关资源
      最近更新 更多