【问题标题】:Laravel 5.5 | Redirect main domain to public folderLaravel 5.5 |将主域重定向到公用文件夹
【发布时间】:2018-09-13 18:18:46
【问题描述】:

我已将laravel 5.5 项目上传到/public_html/commerce 上的实时托管。

当我转到 domain.com/commerce/public 时,一切看起来都很完美。

但是当我将domain 直接指向commerce/public 时,所以;当我访问domain.com 时,所有链接都像这样被破坏:

domain.com/product/domain.comget-item-sizes-detail

以上链接的路线:

Route::post('/get-item-sizes-detail', 'ProductController@getItemSizesDetail');

Ajax 请求:

url:'get-item-sizes-detail', type:"POST", dataType:"JSON"

有什么建议吗?

【问题讨论】:

  • 你是用哪个函数生成链接的?
  • @AkshayKulkarni 这是一个 Ajax 请求 url:'get-item-sizes-detail', type:"POST", dataType:"JSON"
  • 您也必须在 ajax 请求中提供完整路径。在刀片中使用url()route() 函数。
  • @AkshayKulkarni 一些内部视图和其他在单独的 JS 文件中。
  • 我会建议url是否在刀片文件中,然后使用 laravel 辅助函数,如果您在某些 js 文件中需要它,然后从刀片文件中读取 url。一些建议是 1)在刀片文件中初始化一个 JavaScript 变量并在 js 文件中使用它,2)使用自定义 html 标签来保留 url 值并读取 js 文件中的这些标签。希望这会有所帮助。

标签: laravel redirect routes laravel-5.5


【解决方案1】:

这里有一个快速修复:

  1. 在您的 public_html 目录中创建一个文件夹 我会叫它webroot,你可以随便叫它。

  2. 将你的 Laravel public 文件夹的所有内容放到 public_html 目录中

  3. 将 Laravel 项目的所有其他剩余文件和文件夹放入 webroot
  4. 编辑public_html/index.php,将第22行require __DIR__.'/../bootstrap/autoload.php';更改为require __DIR__.'/webroot/bootstrap/autoload.php';并将第36行$app = require_once __DIR__.'/../bootstrap/app.php';更改为$app = require_once __DIR__.'/webroot/bootstrap/app.php';

因此您不必再次将您的主域指向 public_html/public。 只需访问maindomain.com,您的项目就应该像使用 PHP artisan serve 一样运行。但是仍然使用 Forge 或 Fortrabbit 之类的服务是托管 Laravel 应用程序的最佳方式。

祝你好运

【讨论】:

  • 一切都会好的,但是 css 和 js 文件路径问题。你能告诉我吗。 css 和 js 文件路径是什么?
  • 我建议您将其用于您的 CSS 和 JS 链接:URL::asset('path/to/your/cssOrJsAssets')。这样,您不必修改资产链接。对图像也这样做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2018-05-03
  • 1970-01-01
  • 2015-08-24
  • 2022-01-17
  • 2020-01-12
相关资源
最近更新 更多