首页 > 解决方案 > 如何忽略 urlFor() 链接中 index.php 的目录?

问题描述

我正在使用 gcloud 的应用程序引擎,并将我的 index.php 文件放在一个名为“/public”的目录中。我将 app.yaml 文件的入口点设置为从那里开始,因此它将该文件夹视为 url 中的根目录。

当我在我的网站 ( href="home") 上手动编码链接时,一切正常(链接显示为mysiteurl.com/home)。当我使用href="{{ urlFor('home') }}"链接显示为mysiteurl.com/public/home.

所有链接都有效,网站运行没有错误,但我不希望/public出现在链接或 url 中。有没有办法为 slim/twig 设置一个“入口点”(如在 gcloud 中),以便/public在生成链接时将其视为根目录?

更新:这实际上可能是一个 gcloud 问题。在 localhost 上,一切都按预期工作(使用 .htaccess 中忽略的文件.gcloudignore),但是当我部署应用程序时,链接变为/public/page. 也许app.yaml入口点导致了问题?

Addtl 信息: 我使用的是标准环境,这是我的 app.yaml 文件:

runtime: php72

entrypoint: serve public/index.php

basic_scaling:
  max_instances: 1
  idle_timeout: 5m

handlers:
- url: /css
  static_dir: public/css
- url: /data
  static_dir: public/data
- url: /fonts
  static_dir: public/fonts
- url: /img
  static_dir: public/img
- url: /js
  static_dir: public/js
- url: /libs
  static_dir: public/libs
- url: /scss
  static_dir: public/scss

- url: /.*
  script: auto
  secure: always

标签: phptwiggcloudslim-2

解决方案


推荐阅读