故事是,我创建了一个自定义 API 路由 /wp-post-modal/v1/any-post-type
,用于提取任何帖子类型的帖子。在本地,它可以完美地工作(MAMP),但在多个生产服务器(不同的环境)上,它会返回500错误。
适用于本地的API路由:
生产中的API路由示例(表明API路由确实存在):
应该在生产中使用的用法(但不要因为500错误):
我检查了服务器上的nginx错误日志,它们是空的。
/**
* Register API Route: Query Any Post Type
*/
public function any_post_api_route() {
register_rest_route( $this->plugin_name . '/v1', '/any-post-type/', array(
'methods' => 'GET',
'callback' => array( $this, 'get_content_by_slug' ),
'args' => array(
'slug' => array(
'required' => false
)
)
) );
}
/**
*
* Get content by slug
*
* @param WP_REST_Request $request
*
* @return WP_REST_Response
*/
public function get_content_by_slug( WP_REST_Request $request ) {
WPBMap::addAllMappedShortcodes();
// get slug from request
$slug = $request['slug'];
// get title by slug
$return = get_page_by_path( $slug, ARRAY_A, array( 'page', 'post' ) );
// render shortcodes from Visual Composer
$return['post_content'] = apply_filters( 'the_content', $return['post_content'] );
$response = new WP_REST_Response( $return );
return $response;
}
尝试将< code > get _ content _ by _ slug()中的第一行更新为:
if ( class_exists( 'WPBMap' ) ) {
WPBMap::addAllMappedShortcodes();
}
我的猜测是你在本地有WPBMap
库或插件,但它在生产站点中不可用。
我意识到我需要检查是否安装了Visual Composer,而不仅仅是假设WPBMap::addAllMappedShortcodes();
我调整后的代码如下所示:
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
if ( is_plugin_active( 'js_composer/js_composer.php' ) ) {
WPBMap::addAllMappedShortcodes();
}
我部署基本Laravel项目到服务器。当我点击我的域名,它返回默认的欢迎视图。当我把简单的道路(见下文)添加到代码中,并尝试在浏览器中输入该路线时,它会返回500个内部错误。除"/"根路由外,所有路由都返回500错误。 文件夹结构: Laravel文件位于Laravel目录中,但来自公共目录的文件位于api目录中。 .api目录中的htaccess文件: 存储目录和其中的所有内容对任何人都是可写、
在Swoole::$php->runMVC() 调用之前可以修改默认的路由函数。 Swoole::$php->router(function(){ return array('controller' => 'YourController', 'view' => 'YourView'); }); Swoole::$php->runMVC(); 设置后将使用制定的函数作为路由,路由函数务必要
phpGrace 追求极致的效率,我们并不认同在url的基础上继续进行复杂的正则匹配是一种高效的、明智的选择!方便的调用规则比不上轻快的效率!所以我们并不建议您使用复杂的路由规则!尽管如此为了满足开发者的需求和习惯我们还是开放了简单路由!在入口页开启路由配置 <?php define('PG_ROUTE', true);//在框架核心文件引用前定义 include 'phpGrace/phpGra
SOFARPC 中对服务地址的选择也抽象为了一条处理链,由每一个 Router 进行处理。同 Filter 一样, SOFARPC 对 Router 提供了同样的扩展能力。 @Extension(value = "customerRouter") @AutoActive(consumerSide = true) public class CustomerRouter extends Router
英文原文: http://emberjs.com/guides/routing/defining-your-routes/ 当启动你的应用时,路由器会负责展示模板,载入数据,以及设置应用状态等任务。 这些都是通过将当前的URL与你定义的路由进行匹配来实现的。 1 2 3 4 App.Router.map(function() { this.route("about", { path: "/a
例如:产品详细信息页面可能有一个标签式导航部分,默认显示产品概述。 当用户单击“技术规格”选项卡时,该部分将显示规格。 如果用户点击ID为3的产品,我们要显示产品详细信息页面,其中包含概述: 当用户点击 “Technical Specs”: localhost:3000/product-details/3/specs overview 和 specs 作为 product-details/:id的