我在 apache 上开发,现在我需要在 ngix 上部署,我遇到了一些困难。因为在我的项目中禁用了内联样式(使用 cakephp)并且在数据库中定义了一些颜色,所以我让 RsrcController 生成带有颜色的 css 到模板中。
仅当我不使用文件扩展名 .css 时调用此函数才有效,而仅使用带有控制器和函数的斜线 Url。
如果我附加以 .css 结尾的文件,则 nginx 将在 webroot 文件夹中搜索并返回 404。
这是配置的相关部分:
location / {
try_files $uri $uri/ /index.php?$args;
}
#pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
我试图找到一个添加另一个位置规则的解决方案,如下所示:
location ~ rsrc/css_vars/~.css {
... [->second part of my question]
}
我不想将所有 .css 文件传递给 php。只是那些我希望是动态生成的。无论如何,我的更改似乎不起作用。
第二部分:
Cakephp 的工作方式如下:http : //url.com/controller/function/var1/var2/varx 我的控制器是 rsrc。我的函数是 css_vars。比有一些变量(用户......),最后我需要“.css”。
我想将 URl 重写为相同但没有文件扩展名“.css”。有没有办法解决正则表达式?